Android Firebase查询:列表上的equalTo

Android Firebase查询:列表上的equalTo,android,firebase,Android,Firebase,我们正在构建一个android应用程序,需要将手机联系人与已经在该应用程序上注册的人同步。我们正在使用firebase 为此,我们希望根据现有用户的电话号码检索他们的列表 我已经通过ref.orderByChild(“phone”).equalTo($phoneNumber)根据用户的电话号码检索到了用户 但我想知道是否有一种方法可以传递电话号码列表,而不是一次查询一个电话号码? 大概是这样的: 参考orderByChild(“电话”).isIn([phone1,phone2,phone3])

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

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

我已经通过ref.orderByChild(“phone”).equalTo($phoneNumber)根据用户的电话号码检索到了用户

但我想知道是否有一种方法可以传递电话号码列表,而不是一次查询一个电话号码? 大概是这样的: 参考orderByChild(“电话”).isIn([phone1,phone2,phone3])

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

Firebase的查询中没有
中的
运算符

使用
startAt
endAt
功能可选择的最接近范围。但这不适用于您的用例

通常,当人们请求这种类型的操作时,他们试图在一个查询中组合的所有部分之间都有一种关系。例如,在您的案例中,用例可能类似于:“获取用户通讯簿中所有联系人的姓名”

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

  • 使用单独的查询监视每个联系人
  • 将每个联系人的必要元数据嵌入到用户的通讯簿中
  • 选项2是获取信息最便宜的方式,因为您只需要阅读地址簿。但这是以数据重复为代价的,受过相关培训的开发人员不习惯重复数据。参见此答案了解此类非规范化的一个示例:


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

    非常感谢您的回答,非常清楚:)我以前与MongoDB合作过,这种查询是可能的,这就是我为什么要问的原因,但我会用你的解决方案!未来可能会出现新的查询运算符:)