首页 文章

Firebase数据库搜索查询

提问于
浏览
1

我正在尝试使用字符串搜索我的数据库,例如"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 节点中的所有学校 .

How can I search the Firebase database using a String?

2 回答

  • 0

    queryStarting()queryEnding() 可用于编号 . 例如:您可以获得someField从3到10不等的对象 .

    搜索字符串:您可以使用 queryEqualToValue() 搜索整个字符串 .

  • 0

    这显示了匹配 Wick 的所有客户 . (这不是很快,但可能会给你一个想法)

    // sample
    let query = 'Wick' 
    clientsRef.orderByChild('name')
    .startAt(query)
    .endAt(query + '\uf8ff')
    .once('value', (snapshot) => {
         ....        
    })
    

相关问题