我正在使用AngularJS和Firebase制作实时应用。我正在存储一组数据(玩家)。 您可以在下面看到我的数据结构示例。
我可以获得这个特定游戏的所有玩家,但我如何获得玩家的“测试”?密钥是生成的值:
Game.find(gameId).child('/players/').push(player);
然后我想,为什么我不只是'更新''/players/'+name
并在那里设置名称。但不幸的是,我正在取回物体内的物体:
{
players : {
"name":"...",
"test":"moretest"
}
}
我可以访问这些属性,但我不能遍历它们,因为它不是数组。
所以基本上我想做的就是“以明智的方式”让一名玩家离开阵列。
Game.find(gameId).child('/players/').where( name == ...);
提前致谢
编辑:
答案 0 :(得分:3)
您在正确的轨道上只存储播放器的名称,而不是使用push
来生成ID。您需要确保您的玩家名称是唯一的,否则您可能无法容纳两名同名玩家。
Firebase中的每个键都必须有一个值,因此将玩家列表存储在您希望玩家名称可访问的玩家列表的最佳方法是将它们设置为类似“true”的布尔值:
Game.find(gameId).child('/players').child(player).set(true);