1

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 개 필터의 경우 나는 것 그 얼마나 효율적 모르는 경우 함께 사슬.

+0

이것은 실제로 의견 유형 질문이며 답변이있는 동안 몇 시간이 걸리고 Firebase 시작 가이드를 살펴보아야합니다. 아마 firebase이 작동하는 방법을보기 위해 작은 프로젝트를 만들 수 있습니다. 까다로운 점은 새 연락처를 이미 저장 한 연락처와 비교하는 것입니다. 이메일을 통해? 전화? 다른 것? Firebase 데이터베이스를 사용하여 연락처를 저장해야합니다. # 3은 불분명하지만 Firebase의 핵심은 데이터를 구조화하여 200 개의 필터가 없어도된다는 것입니다. – Jay

+0

필자는 이미 Firebase로 몇 가지 응용 프로그램을 만들었으며 # 1에 'IN' 절이 없으므로 # 1이 실행 가능하지 않다는 것을 확신합니다.하지만이 게시물을 통해 확실하게 확인하고 싶습니다. 그래서 모든 가능한 두건에서 나는 다른 것을 사용해야 할 것입니다. # 2를 사용하는 방법을 알고 있지만 Firebase가 Google의 일부이기 때문에 Google Cloud 환경 시스템에 머물러있는 보완 효과가 있는지 궁금합니다. 일반 사용자에게는 주소록에 300 개의 전화 번호 또는 전자 메일이 있으므로 300 개의 필터가 있어야합니다. – MonkeyBonkey

+0

난 핵심 질문에서 혼란 스러웠던 것처럼 보였기 때문에 질문을 덜하기 위해 질문을 다시했습니다. 이제는 IN 절 효율성에 대해 질문했습니다. – MonkeyBonkey

답변

0
  1. 예. 그 때문에 나는보고 싶은 당신에게 : The Firebase Database For SQL DevelopersNoSQL Data Modeling Techniques.

  2. 같은 쿼리를 지원하지 않지만 같은 것을 얻을 수있는 방법이 있습니다. 위의 튜토리얼에서 설명했다.

  3. 예. 이것을 위해 당신은 Cloud Storage For Firebase을 사용할 것을 권합니다.

결론적으로 나는 Firebase을 사용하여 귀하를 권고합니다.

+0

어디서나 링크 나 문서에서 효율적인 IN 절을 볼 수 없으며 NO SQL 모델링은 어느 곳에서도 문제를 해결하지 못하는 것 같습니다. 어떤 기술이 당신을 언급하고 있었습니까? – MonkeyBonkey

+0

'IN' 절이 없으므로'IN' 절이 보이지 않습니다. 이 경우 Firebase의 기본 사항부터 시작합니다. 공식 문서는 아주 좋은 출발점입니다. –

+0

그건 제가 지적한 것입니다, 그것은'IN' 절이 없습니다. 문제는 그 문제를 해결하는 방법이었습니다. 그 대답은 그 대답이 있음을 암시하는 것처럼 보였습니다. – MonkeyBonkey