如何创建一个子项以对应于 UITableView 单元格的文本



我正在为我的学校制作教师评论申请,我的设置方式是你从表格视图中选择一个教授,它会带你到一个新的页面,你可以在其中阅读和撰写评论。现在,我有

    ref = Database.database().reference()
    ref?.child("Reviews").childByAutoId().setValue(myTextView.text)
}

当然,这会产生一个"评论"孩子,并且每个教授的个人资料都来自同一个孩子,并且他们的个人资料页面上都有相同的评论。如何将表格视图中的"评论"更改为教授姓名,以便每个孩子都可以是不同的名字?

如果你的 JSON 在 Firebase 是这样的

teacher_id
   -> name_teacher
   -> reviews
       ->id_review
       ->comment

他的方式 每次您向老师添加评论时,您都必须添加不同的评论,因为comment_id是 autoId

检查您的 json 的结构,您可以通过添加更多详细信息来修改您的问题吗?

你走在正确的轨道上。

通常,最佳做法是将密钥与它们包含的数据解除关联;想象一下,如果你的老师的名字是miss_vernard,她结婚并成为miss_french。您必须完全删除并使用新名称重新创建该节点,并且对它的任何引用也必须更改。最好的办法是使用唯一且单独的键名称。

让我们看一下您的代码是做什么的:

ref = Database.database((.reference((
裁判?。child("Reviews"(.childByAutoId((.setValue(myTextView.text(

如果您运行两次,您的 Firebase 将如下所示:

root
  Reviews
    -YHijiaiiiid: "some name"
    -Ykjnnsi9njs: "another name"

你可能想要的是

root
  Teachers
     -YHijiaiiiid
        teacher_name: "some name"
        reviews:
          -Yjjajsdasdd
             review: "best teacher evah"
          -Y900iosoo98
             review: "he learned me gooder"
     -Ykjnnsi9njs:
        teacher_name: "another name"
        reviews....

让你开始的代码与你的类似。一旦您熟悉了流程,就可以缩短此时间:

ref = Database.database().reference() 
thisTeacherRef.child("Teachers").childByAutoId() //this is a child node within Teachers
theTeacherRef.child("teacher_name").setValue("some name")
thisTeacherReviewRef = thisTeacherRef.child("reviews").childByAutoId() //first review
thisTeacherReviewRef.child("review").setValue("best teacher evah")
thisTeacherReviewRef = thisTeacherRef.child("reviews").childByAutoId() //second review
thisTeacherReviewRef.child("review").setValue("he learned my gooder")

最新更新