假设我在Firebase数据库中有以下数据。需要这些数据才能快速查看特定游戏中的两个玩家。
现在,我想用一个查询更新John Doe (user-ID = UID-1)的名称。理想情况下,有一种方法可以做到这一点。很明显这是伪代码...:-)
Firebase.ref('/game-players/*/UID-1').update("John with a different Doe")
"game-players" : {
"game-1" : {
"UID-1" : "John Doe",
"UID-2" : "Donald Trump"
},
"game-2" : {
"UID-1" : "John Doe",
"UID-3" : "Barrack Obama"
}
}这可以通过首先检查玩家参与的所有游戏来解决(因为这些数据也可以从树的不同分支获得),但我不喜欢必须基于这些数据生成许多不同查询的想法。
有什么想法可以把我带到正确的方向吗?
发布于 2017-02-16 16:02:03
你应该改变你的数据结构。
players:
|--uidxx
|---- name
|---- surname
|---- ...
|--uidx2
|---- name
|---- surname
|---- ...
game-players :
|-- game-1 :
|---- uidxx : true,
|---- uidx2 : true,在players节点中,您将所有球员与数据(例如姓名)放在一起。
在gameplayers节点中,您只使用播放器的uid,而不使用数据。
通过这种方式,您只需更新“玩家”节点中的数据,而无需查询所有游戏。
https://stackoverflow.com/questions/42267558
复制相似问题