2017-10-18 4 views
-1

Firebase로 Android에서 작업 중입니다.
하위 속성이있는 하위 개체를 가져 오는 쿼리에 문제가 있습니다.
데이터 구조를 첨부했습니다.Firebase 쿼리 (하위 하위 속성 가져 오기)

https://i.stack.imgur.com/SDcJh.png

나는 특정 사용자 ID와 사용자가 포함 된 그룹을 싶어.

+0

중첩 된 쿼리를 사용해야합니다. 첫 번째 실행 키를 읽을 이벤트 변경 수신기에 대한 쿼리를 실행 한 다음 자식 프로필이나 사용자가 단일 이벤트 수신기 프로필에 대해 쿼리를 사용하는 경우 추가 검사를 수행하고 해당 키를 읽습니다. 프로필이 아니라 사용자 쿼리를 실행하십시오. 자녀를 읽으십시오. child (snapshot.gtKey()). child (object.getType() "Profile") addSingleEventValue 리스너 –

답변

1

이 경우 비정규 화를 사용해야합니다. 즉, 특정 사용자의 모든 그룹을 추가해야하는 userGroups이라는 또 다른 노드를 만들어야합니다. 데이터베이스는 다음과 같아야합니다.

Firebase-root 
    | 
    ---- userGroups 
      | 
      --- userId1 
      |  | 
      |  --- groups 
      |   | 
      |   --- groupId1: true 
      |   | 
      |   --- groupId2: true 
      | 
      --- userId2 
        | 
        --- groups 
          | 
          --- groupId3: true 
          | 
          --- groupId4: true 

이 데이터베이스 구조를 사용하면 사용자가 분리 된 모든 그룹을 확보 할 수 있습니다. 원하는 사용자에게 청취자를 첨부하고 dataSnapshot 개체의 모든 그룹을 가져옵니다.

+0

그래서 DB 구조를 업데이트해야합니까? –

+0

예, 문제를 해결하는 새 노드를 추가해야합니다. –

관련 문제