Firebase实时数据库查询多个属性

时间:2019-11-28 02:19:38

标签: firebase firebase-realtime-database

因此,我们有一个联系人管理系统,其中存储了名字,姓氏和公司名称。我了解到,firebase db无法使用关系运算符执行那些关系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搜索时。

1 个答案:

答案 0 :(得分:1)

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

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

相关问题