问题描述
exports.updateRelatedCards = functions.firestore
.document('topic/{newTopic}')
.onWrite((snap, context) => {
const newTopic = snap.data();
// search for the recieved title in a 'relatedCards' subcollection
return firestore
.collection(`card/{anyCard}/relatedCards`)
.where('title', '==', newTopic.title)
.get()
.then(coll => {
const list = coll.docs.map(doc => doc.data());
return list ? list : 'nolist';
})
.then(list => console.log('list', list))
.catch(error => console.log('error', error));
});
是否可以在云功能中具有通配符的Firestore查询上使用 .where()
?
is it possible to use .where()
on a firestore query that has a wildcard in a cloud function?
尽管有数据,但我不断得到一个空数组,我不知道自己是否正在做绞拧或是否做不到.似乎没有提及在管理员firestore文档上进行查询https://firebase.google.com/docs/reference/admin/node/admin.firestore
Despite the data existing, I keep getting an empty array, I don't understand if I am doing something wring or if it it just not possible. There doesn't seem to be any mention of querying on the admin firestore docs https://firebase.google.com/docs/reference/admin/node/admin.firestore
推荐答案
您不能在任何上下文或任何SDK中使用通配符查询Firestore.这是无效的:
You can't query Firestore with a wildcard in any context or with any SDK. This is invalid:
firestore.collection(`card/{anyCard}/relatedCards`)
如果您要引用文档或集合,则需要提供它的真实,实际路径.您不能通配路径的任何部分.
If you're going to reference a document or collection, you need to provide the real, actual path to it. You can't wildcard any part of the path.
如果您尝试对已知的集合和文档进行更简单的查询,则可以正常工作.
If you try a more simple query for a known collection and document, it will work just fine.
这篇关于我可以在云功能中以通配符作为管理员查询firestore吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!