比较Firebase数据库触发器onCreate()、onWrite()、onUpdate()的云函数,何时使用?

比较Firebase数据库触发器onCreate()、onWrite()、onUpdate()的云函数,何时使用?,firebase,firebase-realtime-database,google-cloud-functions,Firebase,Firebase Realtime Database,Google Cloud Functions,这是一个简单的问题,我在中的标题中看到了所有这些方法,但是所有的示例都使用onWrite()触发数据库事件,然后必须进行检查以确保它不是用于删除或更新的 exports.makeUppercase = functions.database.ref('/messages/{pushId}/original') .onWrite(event => { ... // Only edit data when it is first created. if (event.da

这是一个简单的问题,我在中的标题中看到了所有这些方法,但是所有的示例都使用onWrite()触发数据库事件,然后必须进行检查以确保它不是用于删除或更新的

exports.makeUppercase = functions.database.ref('/messages/{pushId}/original')
    .onWrite(event => {
...
  // Only edit data when it is first created.
      if (event.data.previous.exists()) {
        return;
      }
      // Exit when the data is deleted.
      if (!event.data.exists()) {
        return;
      }
...
});
例如,onCreate()的唯一示例与身份验证事件有关。有什么原因吗?或者我只是多疑?为什么不直接使用onCreate()而不用检查呢?

onCreate()
onUpdate()
onDelete()
都是在2017年7月7日发布的Firebase SDK for Cloud Functions(v0.5.9)中添加的。详情如下:

用于云功能的Firebase SDK的更新测试版 (v0.5.9)现在可用。它包括倾听的能力 通过使用 onCreate()、onUpdate()和onDelete()方法

在此版本之前,唯一的数据库事件处理程序是
onWrite()
。文档尚未更新以包含新处理程序的示例


没有理由不利用新处理程序的便利。

thxx@Bob。我想知道为什么在我更新帖子的时候我的推送被触发了。因为我使用的是onWrite()方法。