Firebase를 사용하는 모바일 앱에서 일반적인 친구 찾기 기능을 만들어야합니다. 사용자는 주소록에서 해시 된 연락처 이메일 또는 전화 번호 목록을 업로드하고 서버는 이미 애플리케이션을 사용하고있는 사용자 이름 목록을 반환합니다. 일반 사용자는 자신의 주소록에 약 500 명의 연락처를 가지고 있습니다.Firebase 쿼리에 IN 절이 없어서 필터 500 개를 쿼리하는 방법
전통적인 SQL 또는 Mongo 데이터베이스를 사용하여 설정하는 것이 매우 간단하지만 Firebase에서는 Firebase Query가있는 WHERE IN
절이 보이지 않으며 Firebase를 사용하면 매우 비효율적 인 것처럼 보입니다. 이것을위한 데이터베이스. 심지어 해시가 ID 인 특정 HashedPhoneNumbers 컬렉션을 만들었더라도 여전히 괴물 쿼리처럼 보입니다. 이 쿼리를 Firebase에서 효율적으로 실행하는 방법이 있습니까?
또는 SELECT username from Users WHERE phoneHash IN [list of 500 phone hashes]
즉, 나는 그것을 함께 AND email_hash = XXX
필터의 무리를 체인 지원과 같은 Google 클라우드 데이터 저장소 보이는 사용할 수 있었지만, 필터 목록은 500 개 필터의 경우 나는 것 그 얼마나 효율적 모르는 경우 함께 사슬.
이것은 실제로 의견 유형 질문이며 답변이있는 동안 몇 시간이 걸리고 Firebase 시작 가이드를 살펴보아야합니다. 아마 firebase이 작동하는 방법을보기 위해 작은 프로젝트를 만들 수 있습니다. 까다로운 점은 새 연락처를 이미 저장 한 연락처와 비교하는 것입니다. 이메일을 통해? 전화? 다른 것? Firebase 데이터베이스를 사용하여 연락처를 저장해야합니다. # 3은 불분명하지만 Firebase의 핵심은 데이터를 구조화하여 200 개의 필터가 없어도된다는 것입니다. – Jay
필자는 이미 Firebase로 몇 가지 응용 프로그램을 만들었으며 # 1에 'IN' 절이 없으므로 # 1이 실행 가능하지 않다는 것을 확신합니다.하지만이 게시물을 통해 확실하게 확인하고 싶습니다. 그래서 모든 가능한 두건에서 나는 다른 것을 사용해야 할 것입니다. # 2를 사용하는 방법을 알고 있지만 Firebase가 Google의 일부이기 때문에 Google Cloud 환경 시스템에 머물러있는 보완 효과가 있는지 궁금합니다. 일반 사용자에게는 주소록에 300 개의 전화 번호 또는 전자 메일이 있으므로 300 개의 필터가 있어야합니다. – MonkeyBonkey
난 핵심 질문에서 혼란 스러웠던 것처럼 보였기 때문에 질문을 덜하기 위해 질문을 다시했습니다. 이제는 IN 절 효율성에 대해 질문했습니다. – MonkeyBonkey