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

Rau*_*cia 3 firebase google-cloud-firestore

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

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

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

Dou*_*son 7

Firestore 文档路径中没有通配符。您必须通过 ID 识别集合和文档。如果您需要根据某些属性查找某些文档,则需要使用某些字段值作为过滤器进行查询。

您可能会对 Cloud Functions 触发器路径中的通配符感到困惑。当您定义 Firestore 触发器函数时,您可以使用通配符来确定哪些文档会触发该函数,但您不能将它们与客户端 SDK 一起使用来定位文档。


Ian*_*iel 5

我不确定你想做什么。但你确实可以使用通配符,如下所示:

您可以通过访问上下文在 Firebase 函数上使用通配符。

exports.function_name= functions.firestore.document('users/messages/{messageCollectionId}').onCreate((snap, context) => {
  const messageCollectionId = context.params.messageCollectionId;
  console.log('my messageCollectionId: ${messageCollectionId});
});
Run Code Online (Sandbox Code Playgroud)

在您的示例中,我不知道为什么要使用通配符。不就是一个var变量吗?

exports.function_name= functions.https.onRequest((req, res) => {
  const messageCollectionId = req.params.id;
  admin.firestore().collection('users/messages/${messageCollectionId}')
});
Run Code Online (Sandbox Code Playgroud)

了解更多: https: //cloud.google.com/firestore/docs/extend-with-functions