2017-05-03 1 views
0

의 우리는 간단한 데이터 구조를 가지고 있다고 가정 해 봅시다 :Firebase에 하위가없는 위치를 쿼리하는 방법은 무엇입니까?

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

그냥 게임이 있고 모든 게임이 게임에서 재생할 사용자에 대한 데이터가 있습니다. 이제 지정된 사용자 (그의 ID가 "1234567"이라고 가정 해 봅시다)가 재생되지 않은 모든 게임을 가져오고 싶습니다. "playedBy""1234567"이 포함되지 않은 게임을 쿼리해야합니다.

Firebase로 어떻게하면됩니까?

Firebase이 작동하는 모든 언어는 높이 평가됩니다.

+2

지금까지는 Firebase에서 "같지 않음"연산자에 대한 지원이 없습니다. – 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

당신은 이런 식으로 작업을 수행 할 수 있습니다, 각 게임은 사용자 ID

  • 그렇지 않은 경우를 포함

  • 선택하면

    1. 으로 반복 모든 게임을 여물 게임 목록에 게임을 추가

      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

    관련 문제