【问题标题】:Firebase realtime database query on multiple attributesFirebase 实时数据库查询多个属性
【发布时间】:2019-11-28 02:19:38
【问题描述】:

因此,我们有一个联系人管理系统,用于存储名字、姓氏和公司名称。我知道firebase db不能使用关系运算符进行那些关系数据库样式查询,但是如果上述3个属性,是否有一种创造性的方式来支持搜索可以给出结果。?

举个例子:

{
"fName" : "abc",
"lName" : "pqr",
"cName" : "lmn"
},
{
"fName" : "pbc",
"lName" : "aqr",
"cName" : "tmn"
},
{
"fName" : "dbc",
"lName" : "tqr",
"cName" : "amn"
},

当前使用的查询是:

 this.db.list("/users/" + userKey + "/cards", 
ref => ref.orderByChild('fName').startAt('a').endAt('a' +"\uf8ff") )

上面的查询只会返回第一条记录。我需要返回所有 3 个,因为所有 3 个至少有一个以 'a' 开头的属性

我认为其他帖子上的其他建议技巧,例如创建另一个属性结合来自其他属性的值,在这里不会起作用。当他们进行 equalTo 搜索时。

【问题讨论】:

    标签: firebase firebase-realtime-database


    【解决方案1】:

    使用实时数据库,您一次只能对一个孩子进行排序和过滤。因此,鉴于您当前的数据库结构对于单个查询,您尝试做的事情是不可能的。

    您可以做的是发出多个查询,针对您要检查的每个字段一个查询,然后在客户端合并每个查询的结果。

    【讨论】:

    • 是的,这是我认为我拥有的唯一选择,并且正在寻找更好的选择。这个选项不用担心
    猜你喜欢
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多