如何在Firestore云功能中使用通配符?

时间:2019-01-17 21:10:29

标签: firebase google-cloud-firestore

我正在尝试在具有Firestore的云函数中使用通配符,如下所示:

exports.function_name= functions.https.onRequest((req, res) => {
return admin.firestore().collection('users/messages/{messageCollectionId}')

但不起作用。如果我使用实际ID而不是通配符,它​​会起作用。任何帮助都感激不尽。

2 个答案:

答案 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