首页 文章

Firebase查询:在列表中等于

提问于
浏览
1

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

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

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

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

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

1 回答

  • 1

    Firebase在其查询中没有 orin 运算符 .

    使用 startAtendAt 函数最接近的是选择范围 . 但这对您的用例不起作用 .

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

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

    • 使用单独的查询监控每个联系人

    • 将每个联系人的必要元数据嵌入到用户的地址簿中

    选项2是获取信息的最便宜方式,因为您只需要阅读通讯录 . 但它的代价是数据重复,而更多受过关系培训的开发人员并未使用 . 请参阅这个答案,了解这种非规范化的咳嗽例子:Firebase data structure and url

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

相关问题