我有一个集合,其文档具有数组属性members
,其中包含用户ID。我需要找到成员为一对用户ID的文档,例如:
从复合查询的文档中,我可以看到如何创建或
,但我需要和
,因为我需要包含这两个用户ID的文档(这实际上是文档唯一的原因)。医生说
you can include at most one array-contains or array-contains-any clause in a compound query
因此,下面的代码不起作用(我测试了,它实际上返回了一个错误):
const conversation = await firebaseDb.collection(collectionName)
.where('members', 'array-contains', userId)
.where('members', 'array-contains', otherUserId)
.get();
const conversation = await firebaseDb.collection(collectionName)
.where('members', 'array-contains', [userId, otherUserId])
.get();
但它什么也不返回。
是否可以对Firestore文档中的数组值执行逻辑和
?
我能想到的最简单的解决方案是将这些ID存储到映射中,而不是存储到数组中。因此您的成员
映射应该如下所示:
members
|
--- M1fB...szi1: true
|
--- wXam...69A2: true
现在,您可以简单地使用以下命令进行查询:
const conversation = await firebaseDb.collection(collectionName)
.where('members.' + userId, '==', true)
.where('members.' + otherUserId, '==', true)
.get();
而这确实是一个And操作。
如何执行查询?示例: 给出字段为或的所有文档 提供所有文档,其中或字段
我怎么能在最后运行一些逻辑,而不是收集。 我可以像 我如何在过滤后运行最后的逻辑。 谢谢,拉维
当在云函数中与fire base-admin sdk一起使用时,fireste. ColltionGroup()方法会收到错误。是否可以在云函数中对fiRecovery进行集合组查询? 这是我尝试使用的fiRecovery查询方法:https://googleapis.dev/nodejs/firestore/latest/Firestore.html#collectionGroup 但fires
我读了Dan McGrath对这个问题的回答,他说在Firestore中有以下代码行的等价物: 这一行在Firebase Realtime database中工作得很好,但我试图在云Firestore中找到等效的几天。有人能帮我吗? 提前感谢!
问题内容: Iam使用 searchkick 库作为 Elasticsearch 客户进行产品搜索。 https://github.com/ankane/searchkick 可以创建“ OR”条件和“ AND”条件; AND操作 Product.search,其中:{价格:{lte:200},in_stock:true} 或操作 Product.search,其中:{或:[[{{in_stock
云功能文档说 //使用Firebase管理SDK访问Firebase实时数据库。const admin=require('firebase-admin');管理初始化EAPP(); 我使用的是Cloud Firesta,而不是实时数据库。我如何访问它?