Firebase函数SDK 1.0.0 storage.onFinalize()未按预期工作

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 } }

我使用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
,并得到一个
未定义的
。发生了什么事?

在SDK 1.0之前,只有这个事件。它触发了对存储对象的所有更改,必须在对象元数据中进行测试,以确定更改是创建、更新还是删除

在SDK 1.0中,
onChange()
已被删除,无需测试
resourceState
的值:

  • onArchive()
  • onDelete()
  • onFinalize()
  • onMetadataUpdate()

虽然的文档仍然显示了resourceState,但我猜它已经从SDK 1.0中删除了,因为它不再需要了。

Hmm。。。这是一个很好的猜测。我希望Firebase团队能够更好地管理他们的文档。这不是我第一次感到困惑,因为不同的文件会说他们自己的东西。