我正在尝试在具有Firestore的云函数中使用通配符,如下所示:
exports.function_name= functions.https.onRequest((req, res) => {
return admin.firestore().collection('users/messages/{messageCollectionId}')
但不起作用。如果我使用实际ID而不是通配符,它会起作用。任何帮助都感激不尽。
答案 0 :(得分:4)
Firestore的文档路径中没有通配符。您必须通过它们的ID来识别集合和文档。如果需要基于某些属性查找一些文档,则需要使用某些字段值作为过滤器进行查询。
Cloud Functions触发路径中的通配符可能会让您感到困惑。定义Firestore触发功能时,可以使用通配符来确定哪些文档将触发该功能,但是不能与客户端SDK一起使用它们来定位文档。
答案 1 :(得分:3)
我不确定您想做什么。但是您可以这样使用通配符:
您可以通过访问上下文在Firebase功能上使用通配符。
exports.function_name= functions.firestore.document('users/messages/{messageCollectionId}').onCreate((snap, context) => {
const messageCollectionId = context.params.messageCollectionId;
console.log('my messageCollectionId: ${messageCollectionId});
});
在您的示例中,我不知道您为什么要使用通配符。不只是一个var变量吗?
exports.function_name= functions.https.onRequest((req, res) => {
const messageCollectionId = req.params.id;
admin.firestore().collection('users/messages/${messageCollectionId}')
});
了解更多:https://cloud.google.com/firestore/docs/extend-with-functions