2017-06-12 54 views
0

我嘗試解決Firebase中存在的這個問題。我想讓用戶可以選擇搜索朋友,所以他開始輸入朋友姓名或電子郵件,並且它應該從Firebase數據庫中找到可能的結果。我已經實現簡單,只需要搜索名稱或電子郵件,但對於這兩個,如何解決?多個查詢聲音對我來說很混亂,有可能以某種方式?搜索Firebase數據庫以查詢用戶名和電子郵件

用用戶的電子郵件搜索我這樣做。完美的作品,但不能搜索的名字..

  Query queryEmail = FirebaseDatabase.getInstance().getReference() 
        .child(LOCATION_USERS) 
        .orderByChild(PROPERTY_EMAIL) 
        .limitToFirst(10) 
        .startAt(text) 
        .endAt(text + "~"); 

這裏是我的意思是下面,有沒有辦法來實現這一目標?

enter image description here

+1

Firebase數據庫查詢只能對單個屬性進行排序/過濾。不支持「OR」。但是,您可能會添加其他數據以允許用例,例如簡單的「搜索地圖」,您可以在其中爲每個名稱和電子郵件保留UID(作爲值)。該結構將工作類似於我在這裏的答案:https://stackoverflow.com/questions/27207059/firebase-query-double-nested。另請參見我在這裏的分類查詢答案:http://stackoverflow.com/questions/40656589/firebase-query-if-child-of-child-contains-a-value –

回答

0

您必須使用多個查詢。我勸你改變你的結構

userUID 
    name 
    email 
    age 
    name_lowercase 
    email_lowercase 

,然後將您的查詢例如:約翰·約翰,這樣如果用戶大寫他的投入與否並不重要。

相關問題