【问题标题】:Firestore search array contains for multiple values AndroidFirestore 搜索数组包含多个值 Android
【发布时间】:2021-06-03 09:51:48
【问题描述】:

我正在使用 Cloud Firestore 并在集合中,一个名为“通道”的集合包含以下值 ->

users : ["_id1","_id2"]

我必须以某种方式搜索用户数组中的两个值。 我正在尝试这种方式,但它什么也没给我

db.collections("channels").WhereArrayContains("users", listOf("_id1","_id2")).get()

但是搜索没有得到结果。因为看起来查询不正确。它的解决方案是什么?请提及它的查询。

注意 - WhereField 在 android 中已被弃用,所以我不能再使用它了。

【问题讨论】:

  • 请编辑您的问题并将您的数据库结构添加为屏幕截图。
  • Firebase 实时数据库和 Cloud Firestore 是两个独立的数据库。请仅使用相关标签标记您的问题,不要同时使用两者。
  • @FrankvanPuffelen 我提到了 Firestore,这显然意味着 Cloud Firestore 不是实时数据库
  • @nirazv 你用两者都标记了,我为你修好了。问题上只有相关标签会增加有人提供帮助的机会。

标签: android firebase google-cloud-firestore android-ktx


【解决方案1】:

尝试db.collection("channels").WhereArrayContains("users", listOf("_id1","_id2")).get() - 您引用了复数形式的 db 集合,但错过了集合名称中的结束引号,这可能是它不起作用的原因。

【讨论】:

  • 在发布这个问题时我的错误,顺便说一句,如果我错过了报价,那么它会给我一个编译错误,但不是,查询本身无效
  • @nirazv db.collections 怎么样 > db.collection?
猜你喜欢
  • 2019-07-26
  • 2021-05-17
  • 2019-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多