如何跟踪和更新 Firebase 数据库中常见数据集的所有分支?



考虑以下Firebase树,其中我有一个名为users的主节点,其中包含我使用的名称,头像,电子邮件和其他用户内容,并在其他节点上回复。

我有另一个主节点叫games.一个用户可以单独或与其他玩家一起玩多个游戏。

如果用户er09gju34900jf23决定更新其配置文件,我如何查看我拥有此id的所有数据库并一次更新所有路径?

{
users: {
er09gju34900jf23: { // Authenticated User ID
avatar: '',
email: '',
name: '',
// other user profile data
}
},
games: {
er09gju34900jf23: { // Authenticated User ID
a2w4053g9043if092: { // Game Random Generate Game ID (1)
// other data
players: {
er09gju34900jf23: {
avatar: '',
email: '',
name: '',
// other user profile data
},
// other players
}
},
bewrpgkrthg96k059h: { // Game Random Generate Game ID (2)
// other data
players: {
er09gju34900jf23: {
avatar: '',
email: '',
name: '',
// other user profile data
},
// other players
}
}
}
}
}

对于此树,我如何找出er09gju34900jf23a2w4053g9043if092bewrpgkrthg96k059h游戏中的玩家,然后更新其数据,如下所示:

/users/er09gju34900jf23 = {avatar, email, name}
/games/er09gju34900jf23/a2w4053g9043if092/players/er09gju34900jf23  = {avatar, email, name}
/games/er09gju34900jf23/bewrpgkrthg96k059h/players/er09gju34900jf23  = {avatar, email, name}

我建议不要在每个游戏下复制每个用户的完整数据。相反,只需在每个游戏下复制他们的 UID,然后从他们的/users/$uid节点中查找每个用户的信息。

我还建议:

  • 我关于如何进行数据扇出的答案(对于您所问的内容来说,这是一个花哨的术语):如何在Firebase中编写非规范化数据
  • 这篇关于 NoSQL 数据建模的文章
  • 面向 SQL 开发人员的 Firebase 视频系列

最新更新