2016-07-07 6 views
0

내가 중포 기지에 새로운스위프트 꽤 새로운 해요, 그리고 내가 문제가 데이터를 검색 할 쿼리 작업을하는 데 문제가 있음을 발견하고있다.스위프트 : 회원이 중포 기지 데이터베이스에 존재하는지 여부를 찾기

내 목표는 다음

  1. 특정 사용자가 난 단지 그룹의 멤버의 객체를 생성하여 데이터를 평평하게 시도

의 구성원 인 그룹을 찾으려면 (AutoId 키 사용).

{ groupMembers: 
     -KM0fTdaN2D_BKkvlk34: 
      user1: true 
      user2: true 
      user3: true 
     } 
     -KM4ZaXCvALCV_gN74U8: { 
      user3: true 
      user4: true 
     } 
} 

다음 코드를 사용하여 사용자 목록을 실행하여 관련 그룹을 끌어 오려고했습니다. 불행히도 InvalidQueryParameter 오류가 발생합니다.

let groupMemberRef = rootRef.child("groupMembers") 
func userFilter(list: [String]) { 
// list is a list of different users (strings) I'm looking through the groups to try to find 
for user in list { 
    groupMemberRef.queryEqualToValue(true, childKey: user).observeSingleEventOfType(.ChildAdded, withBlock: { (snapshot) in 
     print(user) 
     print(snapshot) 
     print(snapshot.hasChild(user)) 
    }) 
} 

나는 올바른 방향으로 가고 있습니까? 행운을 빌리지 않고 메서드를 연결하는 데 수십 가지 다른 전략을 시도했습니다. 도움을 주셔서 감사합니다 - 정말 진심으로 감사드립니다 !!

답변

0

는 각 사용에 그룹의 추적을 유지, 각 사용자에 따라 그룹 ID의 목록을 저장할 필요가 무엇인가 귀하의 DB 구조가 같아야합니다.

Users: { 
User_id_1: { 
Name: "user name", 
... 
Groups: { 
group_id_1: true, 
group_id_2: true, 
... 
} 
} 
}, 
Groups: { 
group_id_1: { 
user_id_1: true, 
... 
} 
} 
+0

가 기본값으로 어려움을 겪고 후 내 초기 구현을 고려 내 그룹 데이터를 모두 다운로드하는 것이 훨씬 더 좋습니다! 나는 당신이 내가이 전환 이후에 위에서 가지고있는 groupMembers 배열을 삭제할 것을 추측하고있다. (나는이 새로운 모델로 코드를 변경 한 후에 그것을 필요로하지 않는다)? –

+0

필요에 따라 그룹 개체는 그룹 ID를 보유해야하며 "그룹 이름"또는 그룹에 포함 된 사람들의 수를 포함하는 카운터와 같은 원하는 그룹의 속성 (구성원 수를 세는 것보다 낫습니다) 매회) 그리고 모든 사용자 ID가있는 "members"속성도 있어야합니다 – Gil