【发布时间】:2021-12-28 09:30:50
【问题描述】:
我在 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.documentId() 执行“数组包含”查询。
还有其他方法可以得到结果吗?或者我可以用什么代替array-contains
【问题讨论】:
-
admin.firestore.FieldPath.documentId()是文档 ID。它是一个字符串,而不是一个数组。你能告诉我们更多关于你想要做什么的信息吗?看起来好像您正在尝试获取集合中具有特定 ID 的所有文档。但如果是这样,为什么不使用 ID 自行检索该文档呢?您不需要where查询,因为您已经知道 ID -
我正在尝试获取包含特定子字符串的所有文档,起初我不知道使用数组包含是错误的,但现在我清楚了,谢谢澄清。 @S.Ramjit
标签: javascript google-cloud-firestore google-cloud-functions