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()
?
尽管存在数据,但我仍然会得到一个空阵列,我不明白我是在做什么,也可能是不可能的。似乎没有提及在admin firestore docs上查询https://firebase.google.com/docs/reference/admin/node/admin.firestore
答案 0 :(得分:2)
您无法在任何上下文或任何SDK中使用通配符查询Firestore。这是无效的:
firestore.collection(`card/{anyCard}/relatedCards`)
如果您要引用文档或集合,则需要提供实际的实际路径。你不能在路径的任何部分用通配符。
如果您对已知的集合和文档尝试更简单的查询,它将正常工作。