【发布时间】:2020-04-25 13:09:11
【问题描述】:
由于存储触发器是存储桶范围的,我使用 firestore 触发器来观察“UploadTriggers/”路径中的变化,其中 docId 标记每个目标文件(这是一个小的静态列表)和该文档中的 storage_path 条目指向我上传文件的位置。
这在大门的右侧工作得很好,但它刚刚停止工作。 (我尝试将整个 fn 减少到单个 console.log,但仍然没有。)
根本没有日志输出,也没有失败的迹象——什么都没有。 我尝试重新部署 fn(带有和不带重命名)无济于事。
有什么想法吗?
export const myFn = functions.firestore
.document('UploadTriggers/MyFile.csv')
.onWrite(async (change, context) => {
const path = changed.after.data().storage_path;
console.log("csv updated:", path);
// ...load stream from path and do neat things...
【问题讨论】:
-
我很困惑,因为您的问题是您正在存储桶上编写 Cloud Storage 触发器,但您的代码显示了 Firestore 触发器。这两个云产品是完全不同的。您无法编写响应 Cloud Storage 存储分区更新的 Firestore 触发器。我怀疑您显示的触发器是否曾经触发过 Cloud Storage 更新。请查看Firestore triggers 和Cloud Storage triggers 的文档。它们绝对不一样。
-
我正在编写一个 firebase 触发器来通知我某些存储更改 - 所以在我上传到存储后,我修改了数据库以触发此触发器。您不能执行按路径存储触发器,因为您只能按整个存储桶缩小存储触发器的范围,而且我不希望我的 fn 在存储桶中的每次存储更改时运行。
-
你是怎么触发这个功能的?你能在你的问题中显示代码吗?
-
您在评论中给出的解释需要在代码和通过系统的整体数据流方面进行更多解释。请编辑问题以完全解释这应该如何工作,特别是您希望此触发器如何执行,正如弗兰克所说。
-
如何触发 fn?这是一个数据库触发器 - 所以它可以来自用户 SDK、管理员 SDK、CLI 或通过从仪表板手动摆弄数据库。
标签: firebase google-cloud-firestore google-cloud-functions google-cloud-storage