我在firestore云函数中有一个更新文档的触发器,在这个函数中,我想获取包含特定字符串的文档。所以我尝试了这个:
const chat_threads = admin.firestore().collectionGroup('chatThreads').where(admin.firestore.FieldPath.documentId(),'array-contains', reciever_id).get().then(function (querySnapshot) {
querySnapshot.forEach((doc) => {
console.log(doc.id, " => ", doc.data());
});
});
但是我收到这个错误
错误:查询无效。您不能在FieldPath.docultId((.上执行"array-contents"查询
有其他方法可以得到结果吗?或者我可以用什么代替array-contains
我想获取包含特定字符串的文档
Firestore无法找到具有任意子字符串的文档。它可以进行前缀过滤(所以字符串以特定值开头(,但没有其他子字符串匹配。
这之前已经报道过几次了,所以请看一下:
- Firestore获取包含字符串的文档
- 选择Firestore中文档字段包含字符串的位置
- Firestore-如何应用';字符串包含';查询时字段的条件
虽然这些不是特定于文档ID的(根据您的需要(,但这里也适用相同的限制(以及解决方案/解决方案(。