我正在尝试使用字符串搜索我的数据库,例如“A”。我刚看这个Firebase教程Common SQL Queries converted for the Firebase Database - The Firebase Database For SQL Developers #4,它解释说,为了在数据库中搜索字符串(在某个位置),你必须使用:
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") ...
当我从Firebase打印快照时,我会回来。
如果我摆脱了结尾.queryEnding(atValue: "A\\uf8ff")
,数据库将返回Schools
节点中的所有学校。
如何使用字符串搜索Firebase数据库?
答案 0 :(得分:0)
queryStarting()
和queryEnding()
可用于编号。例如:您可以获得someField从3到10不等的对象。
用于搜索字符串:您可以使用queryEqualToValue()
搜索整个字符串。
答案 1 :(得分:0)
这将显示与Wick
相匹配的所有客户。 (不是很快,但可能会给您一个想法)
// sample
let query = 'Wick'
clientsRef.orderByChild('name')
.startAt(query)
.endAt(query + '\uf8ff')
.once('value', (snapshot) => {
....
})