【问题标题】:Get Firestore document where value not in array获取值不在数组中的 Firestore 文档
【发布时间】:2020-11-20 13:36:44
【问题描述】:

我知道 firestore 不允许在 .where() 查询中使用不等式语句,我应该链接 > 和

在我的 react native 应用程序中,我想选择一些尚未被用户添加的用户。在获得当前用户已经添加的所有用户的数组后:

var doc = await firebase
  .firestore()
  .collection(`users/${currentUser.uid}/user_data`)
  .doc("friends")
  .get();
var friends = doc.data()

然后我想选择一些没有被当前用户添加的用户如下:

var docs = await firebase
  .firestore()
  .collection("users")
  .limit(10)
  .where("username", "not in", friends)
  .get();

我该怎么做?谢谢

【问题讨论】:

    标签: javascript firebase google-cloud-firestore


    【解决方案1】:

    Firestore 无法进行此类查询。 Firestore 只能查询它为每个字段创建的索引中存在的内容。对于存在的事物,无法有效地查询这些索引。

    另请参阅:Firestore: how to perform a query with inequality / not equals

    【讨论】:

    • 此问题显示获取字段不等于单个字符串的文档。但我想知道如何获取字段不是任何字符串数组的文档。您如何建议这样做?
    • 出于同样的原因不能这样做。数据类型无关紧要。列表、地图、字符串、数字、时间戳,所有这些都无法检查是否不存在。这不是索引的工作方式。
    猜你喜欢
    • 2019-02-04
    • 1970-01-01
    • 2020-12-03
    • 2021-07-25
    • 1970-01-01
    • 2023-02-25
    • 2021-06-29
    相关资源
    最近更新 更多