2015-04-23 62 views
1

我們正在構建一個android應用程序,需要將手機聯繫人與應用程序中已註冊的人員進行同步。我們正在使用FirebaseFirebase查詢:等於列表

爲此,我們希望根據他們的電話號碼檢索現有用戶的列表。

我設法基於與ref.orderByChild(「手機」),他們的電話號碼來獲取用戶。equalTo($ phoneNumber的)

但我不知道是否有通過電話號碼列表的方式,而不是每次查詢每個電話號碼? 事情是這樣的: ref.orderByChild(「手機」)伊辛([PHONE1,PHONE2,電話3])

我剛開始學習火力地堡,但我喜歡這個概念:) 非常感謝您的回答!

回答

1

Firebase在其查詢中沒有orin運營商。

最接近你可以用startAtendAt函數來選擇一個範圍。但是這對你的用例不起作用。

通常當人們要求這種類型的操作時,他們試圖在查詢中合併的所有片段之間存在關聯。例如,對於您的情況,用例可能類似於:「獲取用戶通訊錄中所有聯繫人的名稱」。

在這種情況下有幾個選項:

  1. 顯示器用一個單獨的查詢每個聯繫人
  2. 嵌入必要的元數據爲每個聯繫人到用戶的地址簿

選項2是獲取信息的最便宜的方式,因爲您只需要閱讀地址簿。但是這是以數據重複爲代價的,這是更多的受過關係培訓的開發人員不習慣的。看到這個答案的咳嗽這種非規範化的偉大咳嗽例如:Firebase data structure and url

選項1是不是因爲您可能希望幾乎一樣昂貴,因爲火力地堡將打開一個套接字連接只有一次,然後執行所有其它查詢過相同的連接。

+0

非常感謝您的回答,這很清楚:) 我之前和MongoDB一起工作過,而且這樣的查詢是可能的,這就是我爲什麼要問的原因,但我會使用您的解決方案之一! 也許新的查詢操作符將來到:) – adrien