我是firebase的新手,我需要帮助。我的数据库中有两个节点:用户和帖子,如下所示:
users
uid
name: "William"
post:
KUhyPi5xLZBGyp-_X-W: true
-KWH8EVxohgNBfHuKoYy: true
posts
KUhyPi5xLZBGyp-_X-W
comment: "I love this"
-KWH8EVxohgNBfHuKoYy
comment: "Coding is fun"
目前我可以在tableView中显示所有帖子。但我希望能够像在facebook中一样显示发布帖子的用户的姓名。请告诉我如何检索谁在该索引路径上发布特定帖子的用户名,以便将其显示在tableViewcell的标签中
以下是我用于显示当前tableview中所有帖子的代码
DataService.ds.REF_POST.observe(
.value, with: { (snapshot) in
if let snapshot = snapshot.children.allObjects as? [FIRDataSnapshot]{
for snap in snapshot{
print("SNAP: \(snap)")
if let postDict = snap.value as? Dictionary<String, AnyObject>{
let key = snap.key
let post = Post(postKey: key, postData: postDict)
self.posts.append(post)
}
}
}
self.tableView.reloadData()
})
}
答案 0 :(得分:3)
保存评论时,请将uid与其一起存储,以便以后轻松查询。
{
"posts" : {
"KUhyPi5xLZBGyp-_X-W": {
"uid": "USER_ID",
"comment": "I love this"
}
"-KWH8EVxohgNBfHuKoYy": {
"uid": "USER_ID",
"comment": "Coding is fun"
}
}
}
我意识到这看起来像复制您的数据,但这是他们建议您存储数据的方式,以便您可以轻松/快速地查询它。例如,一旦获得所有yoru评论,您就会收集所有用户ID并获取这些个人用户。没有办法在一个查询中完成所有操作。