【发布时间】:2020-11-09 00:46:02
【问题描述】:
我有一个函数在我的云 Firestore 数据库的 onUpdate 触发器上触发。 更改数据库时根本没有调用该函数。
我没有使用 firestore CLI 部署该函数,而是使用 GCP Console 部署它。
函数如下:
exports.NotificationListener = functions
.firestore
.document('users/{userId}')
.onUpdate((change, context) => {
const userId = context.params.userId.toString();
const eventId = context.eventId;
console.log('EventId:' + eventId);
console.log('Change in:' + userId);
return 200;
});
我想监控集合中任何“USER”的任何更改:“/user”,因此我使用的是“user/{userId}”。
为什么我更改数据库时没有调用此函数?
编辑 1
关于我的环境的一些信息:
我的整个项目核心都在一个 TypeScript 文件中。我目前有超过 40 个 HTTPS 触发函数在线。
我在我的 TS 文件中添加一个新函数,然后我执行 npm run build 来编译并获取 JS 文件。
最后,我去 Google Cloud Console 创建一个函数并选择“Zip Upload”并上传编译好的 JS 文件(显然,还有获取数据库 URL、身份验证等所需的 JSON 文件)
这种方法非常有效,至少对于 HTTP 触发的 Firestore 函数而言。
现在我对onUpdate 触发器重复了与上述相同的步骤,只是没有选择HTTP 触发器,而是选择了Cloud Firestore 触发器。触发信息可以在上面的截图中找到。
onUpdate 不会在数据库更改时触发。
编辑 2
我的事件触发函数 NotificationListener 与我的其他 40 个 HTTPS 函数一起显示在 firebase 控制台函数列表中。但它没有被调用。
【问题讨论】:
标签: firebase google-cloud-firestore google-cloud-functions