Firebase查询:等于列表

时间:2015-04-23 15:06:58

标签: android firebase

我们正在构建一个Android应用程序,需要将手机联系人与已在应用程序上注册的人员同步。我们正在使用firebase

为此,我们希望根据电话号码检索现有用户列表。

我已经设法使用ref.orderByChild(“phone”)根据他们的电话号码检索用户.equalTo($ phoneNumber)

但我想知道是否有办法传递电话号码列表,而不是一次查询每个电话号码? 像这样的东西: ref.orderByChild(“phone”)。isIn([phone1,phone2,phone3])

我刚刚开始学习Firebase,但我喜欢这个概念:) 非常感谢您的回答!

1 个答案:

答案 0 :(得分:1)

Firebase的查询中没有orin个运算符。

您可以使用startAtendAt函数最近的一个选择范围。但这不适用于您的用例。

通常,当人们要求进行此类操作时,他们尝试在查询中组合的所有部分之间存在关联。例如,在您的情况下,用例可能类似于:“获取用户地址簿中所有联系人的姓名”。

在这种情况下,有几个选择:

  1. 使用单独的查询监控每个联系人
  2. 将每个联系人的必要元数据嵌入到用户的地址簿中
  3. 选项2是获取信息的最便宜方式,因为您只需要阅读地址簿。但它的代价是数据重复,而更多受过关系培训的开发人员并未使用。请参阅此答案,了解咳嗽 咳嗽这种非规范化的例子:Firebase data structure and url

    选项1并不像您预期​​的那么昂贵,因为Firebase只会打开一次套接字连接,然后通过同一个连接执行所有其他查询。