2017-05-03 4 views
0

は、我々は単純なデータ構造を持っているとしましょう:Firebaseに子がどこに存在しないのかを照会するには?

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

はただのゲームがあり、すべてのゲームは、このゲームで遊んだユーザーに関するデータを持っています。今、私は指定されたユーザー(彼のidが"1234567"と言うことを考えてみましょう)がプレイしなかったすべてのゲームを手に入れたいです。 "playedBy""1234567"が含まれていないゲームをクエリする必要があります。

Firebaseでどのように達成できますか?

Firebaseが動作するすべての言語が評価されます。

+2

私が知る限り、今のところFirebaseでは "not equals"演算子はサポートされていません。 – Ekalips

+0

これで確認してください。http://stackoverflow.com/questions/37752402/firebase-database-not-equal-request-alternative-solution-for-ios –

+0

Firebaseは存在する値のみを照会できます。 http://stackoverflow.com/questions/28582223/is-it-possible-query-data-that-are-not-equal-to-the-specified-condition –

答えて

1

あなたはこのようにそれを行うことができます。

  1. 反復いない場合は、各ゲームはゲーム

    のリストにゲームを追加し、ユーザID
  2. が含まれている場合は、すべてのゲームに

  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)); 
         } 
        } 
        ... 
    

これはうまくいきます。

+0

そのような失望の解決策を見てください... – ThirdMartian

関連する問題