将评论子项添加到帖子的数据结构中

时间:2019-06-18 20:59:14

标签: ios swift firebase firebase-realtime-database

我想为我的社交媒体应用创建一个数据结构,看起来应该像这样:

{
  "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文档后,我对如何调整代码以创建合适的数据结构感到有些困惑。让我知道是否需要查看其他详细信息。谢谢您的帮助。

1 个答案:

答案 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