我使用 Firebase 函数检测到存储的上传事件并将下载 URL 写入数据库,如下所示:
exports.processFile = functions.storage.object().onChange((event) => {
const object = event.data,
filePath = object.name;
if (object.resourceState === 'exists') {
// Do something
}
}
收到一封关于 SDK 1.0 的电子邮件,我更新了这样的函数:
exports.processFile = functions.storage.object().onFinalize((object, context) => {
const filePath = object.name;
if (object.resourceState === 'exists') {
// Do something
}
}
更新后,函数中断了,所以我决定在日志中打印
resourceState
并得到一个 undefined
。到底是怎么回事? 最佳答案
在 SDK 1.0 之前,只有 onChange() 事件。它会触发对存储对象的所有更改,并且必须测试对象元数据中的 resourceState 以确定更改是创建、更新还是删除。
在 SDK 1.0 中, onChange()
已经是 replaced by four events ,不再需要测试 resourceState
的值:
尽管 ObjectMetadata 的文档仍然显示
resourceState
,但我猜测它已从 SDK 1.0 中删除,因为不再需要它。关于Firebase 函数 SDK 1.0.0 storage.onFinalize() 未按预期工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49641197/