Firebase Database를 처음 사용하기 시작했으며 효율적으로 데이터를 쿼리하는 데 어려움을 겪고 있습니다. 나의 현재 데이터베이스 구조는 우리가이 예제를 참조 권장 데이터 구조에 대한 중포 기지 문서와 유사하다 :여러 개의 키가있는 Firebase 데이터베이스 쿼리
// An index to track Ada's memberships
{
"users": {
"alovelace": {
"name": "Ada Lovelace",
// Index Ada's groups in her profile
"groups": {
// the value here doesn't matter, just that the key exists
"techpioneers": true,
"womentechmakers": true
}
},
...
},
"groups": {
"techpioneers": {
"name": "Historical Tech Pioneers",
"members": {
"alovelace": true,
"ghopper": true,
"eclarke": true
}
},
...
}
}
제가하는 데 문제는 내가 효율적으로 그룹 이름을 모두 검색하는 방법을 잘 모르겠어요 것입니다 특정 사용자. 내가 쉽게 사용자의 그룹 ID를 모두 검색 할 수 있습니다
usersRef.child("alovelace").child("groups").observeSingleEvent(of: .value, with: { (snapshot) in
// code to store group IDs
})
하지만 지금은 모든 그룹 이름을 얻기 위해 생각할 수있는 유일한 방법은 ID를 통해 루프를 만드는 것입니다, 다음 .observeSingleEvent 통화를 각자 이름을 알아 내야 해. 하지만 사용자 그룹이 매우 큰 경우에는 어떻게해야합니까? 이상적으로 나는 많은 데이터베이스 호출을하지 않고 한 번의 호출로 수행하는 것을 선호합니다. 이 데이터 구조로 가능합니까?
Firebase는 단일 열린 연결을 통해 항목을 검색하므로 연결 오버 헤드가 적습니다. 이러한 방식으로 합리적인 수의 항목 검색 (클라이언트 측 조인이라고도 함)은 기존 연결을 통해 요청이 파이프 라인되기 때문에 생각만큼 느리지는 않습니다. http://stackoverflow.com/questions/35931526/speed-up-fetching-posts-for-my-social-network-app-by-using-query-instead-of-obse/35932786#35932786 –