我想为我的社交媒体应用创建一个数据结构,看起来应该像这样:
{
"posts" : {
"-Lhg9lSr1ztxtawJ0oBV" : {
"reports" : 0,
"text" : "Let’s try reports",
"timestamp" : 1560887892027,
"title" : "Fine\t",
"userID" : "nyRBXSyyDhc1Qkypou0Iz0iMsyr1"
"comments" : {
"reports" : 0,
"text" : "Let’s try reports",
"timestamp" : 1560887892027,
"title" : "Fine\t",
"userID" : "nyRBXSyyDhd1Qkypou0Iz0iMsyr1"
}
}
}
但是目前,我的JSON没有注释部分。这是我用于提交帖子的代码:
let postObject = [
"title": titleText.text,
"text": mainText.text,
"timestamp": [".sv": "timestamp"],
"userID": userID,
"reports": 0,
"comments": []
] as [String : Any]
postRef.setValue(postObject, withCompletionBlock: { error, ref in
if error == nil {
self.delegate?.didUploadPost(withID: ref.key!)
self.dismiss(animated: true, completion: nil)
} else {
// Handle error
}
}
您可以通过单击表格单元格中显示的帖子向帖子中添加评论,该链接将带您进入包含该帖子信息的MainTextView。在这里,您可以输入评论,然后点击回复按钮,这会将您的评论添加到帖子中。为此,我使用的功能如下:
Database.database().reference().childByAutoId().child( newCommentLabel.text)
最终,我也非常想将上述数据结构也添加到我的注释中。但是现在,即使只是尝试添加评论对我的数据库也没有任何作用。阅读Firebase文档后,我对如何调整代码以创建合适的数据结构感到有些困惑。让我知道是否需要查看其他详细信息。谢谢您的帮助。
答案 0 :(得分:2)
要添加评论,您需要
let comment:[String:Any] = [ "reports" : 0,
"text" : "Let’s try reports",
"timestamp" : 1560887892027,
"title" : "Fine\t",
"userID" : "nyRBXSyyDhd1Qkypou0Iz0iMsyr1"
]
let ref = Database.database().reference()
ref.child("posts/\(postId)/comments").childByAutoId().setValue(comment)
在编辑帖子以添加评论时,请确保您要添加评论postId