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