Firebase中IN关键字的替代形式是什么?

时间:2019-04-23 16:57:42

标签: android firebase firebase-realtime-database

我在Firebase中的节点为:

users---
       |
      uid---
           |
           phone:
           name:

我正在这里寻找IN的实现。我想检查数据库中是否存在电话号码列表中的哪些小肠,然后获取这些小肠。

在SQL数据库中,等效查询可能是:

select phone from users where phone IN ('phone1','phone2','phone3',...)

如何在Android Firebase项目中实现这一目标?

3 个答案:

答案 0 :(得分:3)

无法复制以下SQL查询:

select phone from users where phone IN ('phone1','phone2','phone3',...)

进入Firebase实时数据库查询。相反,您可以分别在数据库中查询每个电话号码并在客户端收集结果。

如果您考虑在某个时候尝试使用Cloud Firestore,则可以在每个get()对象上调用Query方法,您会发现它将返回一个Task反对在准备好文档后将其解决。之后,只需将所有任务收集到任务列表中,然后将该列表传递给Tasks的whenAllComplete()方法即可在整个任务集完成时做出响应。然后,您可以检查那里所有任务的结果,并采取相应的措施。

答案 1 :(得分:1)

正如亚历克斯所说,您无法查询电话列表,而只能使用equalsTo()

进行查询。

请参阅查询数据

https://firebase.google.com/docs/database/admin/retrieve-data

答案 2 :(得分:1)

在Firestore上,您可以执行where子句,无需指定单个条目:

var citiesRef = db.collection("cities");
var query = citiesRef.where("phone", "==", "phone1")

请参阅:

Simple and compound queries