我正在尝试部署一个用Python编写并与云控制台一起部署的云函数,每当将文档添加到子集合中时,就会触发云函数。
我已经将路径指定为users/{userID}/contactDump/{dumpID},这意味着每当向任何用户的contactDump子集合中添加一个新文档时,该函数都应该触发。
根据Google文档的说法,这是一个有效的路径结构。他们自己的文档有以下内容
users/{username}/addresses/{addressId}:有效触发器。监视所有地址文件。
但是,每当我部署函数(这很好),路径就会更改为{dumpID}
注:如果我试图部署在users/{userID}上触发的函数,在部署之后,路径会更改为{userID}
发布于 2021-12-17 12:58:14
此问题仅在云控制台中发生,通过创建具有以下设置的Firestore触发器的新函数,可以很容易地再现该问题:

一旦函数被部署,触发器部分显示的路径不是函数触发器创建期间添加的路径,而是显示的路径是{addressId}。

在得到这个结果之后,它让我认为这是您面临的同一个问题,因为尽管使用了不同的事件类型,文档路径似乎被更改了,并且只显示了我们首先输入的路径的最后一部分,在本例中是{addressId}。
为此,正如您所说的该函数运行良好,我希望让云函数数据使用来自云功能文档的API执行一个get请求,在请求参数中,我添加了云函数创建的详细信息。
在执行API调用之后,响应将包含具有完整触发路径的eventTrigger。
在前面的示例中,结果是:
{
"eventTrigger": {
"eventType": "providers/cloud.firestore/eventTypes/document.create",
"resource": "projects/<PROJECT_ID>/databases/(default)/documents/users/{username}/addresses/{addressId}",
"service": "firestore.googleapis.com",
"failurePolicy": {}
}
}响应中的“eventTrigger”包含原始路径users/{username}/addresses/{addressId},而不是控制台中显示的路径。
这使我认为,我们在云控制台中只看到缩短路径的原因并不意味着它已被更改,显然它只是在路径的最后一个“/”斜杠之后显示部分,尽管云函数中的路径更长。
因为这看起来像是控制台显示路径的问题,所以我已经引发了这个公共问题。
如果需要恢复原始路径,可以使用API或gcloud工具:
gcloud functions describe FUNCTION_ID --format 'value(eventTrigger.resource)'https://stackoverflow.com/questions/70184044
复制相似问题