如何查询Firebase中不存在子项的位置?

时间:2017-05-03 11:25:47

标签: android ios firebase firebase-realtime-database

假设我们有简单的数据结构:

"games": {
     "{gameId}" {
          "title": "Chess",
          "playedBy" : {
               "{userId}" : true,
               "{userId}" : true
           }
     }
}

只有游戏,每个游戏都有关于玩这个游戏的用户的数据。现在我希望所有指定用户的游戏(假设他的id为"1234567")都没有播放。我必须查询"playedBy"不包含"1234567"的游戏。

如何使用Firebase实现这一目标?

Firebase的所有语言都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

  1. 通过所有游戏进行迭代
  2. 检查每个游戏是否包含用户ID
  3. 如果没有,请将游戏添加到游戏列表

    mGamesRef.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
             if(!dataSnapshot.child("playedBy").hasChild(userId)) {
                 gamesList.add(dataSnapshot.getValue(Game.class));
             }
        }
        ...
    
  4. 希望这适合你。