Firebase函数SDK 1.0.0 storage.onFinalize()未按预期工作
我使用Firebase函数检测上传到存储器的事件,并将下载URL写入数据库,如下所示:Firebase函数SDK 1.0.0 storage.onFinalize()未按预期工作,firebase,google-cloud-functions,Firebase,Google Cloud Functions,我使用Firebase函数检测上传到存储器的事件,并将下载URL写入数据库,如下所示: exports.processFile = functions.storage.object().onChange((event) => { const object = event.data, filePath = object.name; if (object.resourceState === 'exists') { // Do something } }
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
,并得到一个未定义的
。发生了什么事?在SDK 1.0之前,只有这个事件。它触发了对存储对象的所有更改,必须在对象元数据中进行测试,以确定更改是创建、更新还是删除
在SDK 1.0中,onChange()
已被删除,无需测试resourceState
的值:
- onArchive()
- onDelete()
- onFinalize()
- onMetadataUpdate()
虽然的文档仍然显示了resourceState,但我猜它已经从SDK 1.0中删除了,因为它不再需要了。Hmm。。。这是一个很好的猜测。我希望Firebase团队能够更好地管理他们的文档。这不是我第一次感到困惑,因为不同的文件会说他们自己的东西。