Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何查询Firebase中不存在子项的位置?_Android_Ios_Firebase_Firebase Realtime Database - Fatal编程技术网

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

Android 如何查询Firebase中不存在子项的位置?,android,ios,firebase,firebase-realtime-database,Android,Ios,Firebase,Firebase Realtime Database,假设我们有简单的数据结构: "games": { "{gameId}" { "title": "Chess", "playedBy" : { "{userId}" : true, "{userId}" : true } } } 只有游戏,每一个游戏都有玩家的数据。现在我想得到所有指定用户(假设他的id是“1234567”)没有玩的游戏。我必须查询“pla

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

"games": {
     "{gameId}" {
          "title": "Chess",
          "playedBy" : {
               "{userId}" : true,
               "{userId}" : true
           }
     }
}
只有游戏,每一个游戏都有玩家的数据。现在我想得到所有指定用户(假设他的id是
“1234567”
)没有玩的游戏。我必须查询
“playedBy”
不包含
“1234567”
的游戏

我如何使用Firebase实现这一点


Firebase工作的每一种语言都将受到赞赏

您可以这样做:

  • 迭代所有的游戏
  • 检查每个游戏是否包含用户id
  • 如果没有,请将游戏添加到游戏列表中

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

  • 希望这对您有用。

    据我所知,Firebase目前不支持“不等于”运算符。请与此Firebase联系,Firebase只能查询存在的值。看到这样令人失望的解决方案。。。