2016-12-09 129 views
1

我正在嘗試使用字符串(例如「A」)搜索我的數據庫。我只是看着這個火力地堡教程Common SQL Queries converted for the Firebase Database - The Firebase Database For SQL Developers #4並解釋說,爲了在數據庫中搜索字符串(在某個位置),您必須使用:Firebase數據庫搜索查詢

firebase.database().ref.child("child_name_here") 
    .queryOrdered(byChild: "child_name_here") 
    .queryStarting(atValue: "value_here_uppercase") 
    .queryEnding(atValue: "value_here_uppercase\\uf8ff") 

必須在結束值作爲使用兩個\\一個轉義字符爲了得到一個\

當我嘗試使用我的Firebase數據庫時,它不起作用。這裏是我的數據庫:

{ 
    "Schools": { 
     "randomUID": { 
      "location" : "anyTown, anyState", 
      "name" : "anyName" 
     } 
    } 
} 

這裏是我的查詢:

databaseReference.child("Schools") 
    .queryOrdered(byChild: "name") 
    .queryStarting(atValue: "A") 
    .queryEnding(atValue: "A\\uf8ff") ... 

當我去打印從火力地堡快照,我回去。

如果我擺脫了結尾.queryEnding(atValue: "A\\uf8ff"),數據庫將返回Schools節點中的所有學校。

如何使用字符串搜索Firebase數據庫?

+0

Firebase數據庫查詢區分大小寫。在您的示例JSON中,沒有以'A'開頭的學校名稱,只有以'a'(小寫)開頭的學校名稱。 –

+0

您可能知道這一點,但爲了清楚起見,該技術將僅搜索字符串*,以字符'A'開頭*而不是任何子字符串。 Firebase無法直接搜索子字符串,因此必須使用其他自制方法。 – Jay

回答

0

queryStarting()queryEnding()可用於數字。例如:您可以使用someField從3到10變化的對象。

用於搜索字符串:您可以使用queryEqualToValue()搜索整個字符串。