获取值不在数组中的 Firestore 文档
Posted
技术标签:
【中文标题】获取值不在数组中的 Firestore 文档【英文标题】:Get Firestore document where value not in array 【发布时间】: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();
我该怎么做?谢谢
【问题讨论】:
【参考方案1】:Firestore 无法进行此类查询。 Firestore 只能查询它为每个字段创建的索引中存在的内容。对于不存在的事物,无法有效地查询这些索引。
另请参阅:Firestore: how to perform a query with inequality / not equals
【讨论】:
此问题显示获取字段不等于单个字符串的文档。但我想知道如何获取字段不是任何字符串数组的文档。您如何建议这样做? 出于同样的原因不能这样做。数据类型无关紧要。列表、地图、字符串、数字、时间戳,所有这些都无法检查是否不存在。这不是索引的工作方式。以上是关于获取值不在数组中的 Firestore 文档的主要内容,如果未能解决你的问题,请参考以下文章
为啥我不能将从 Firestore 获取的值分配给 Swift 中的数组?
如何从 Firestore 集合中获取所有文档并将它们返回到数组列表中? [复制]