我想区分删除的数据和首次创建的数据。
我正在使用Firebase中的代码:

if (event.data.previous.exists()) {
    return;
  }
  // Exit when the data is deleted.
  if (!event.data.exists()) {
    return;
  }


但是,它不起作用。我在听的数据库结构如下:


正在使用


fruitID
id:fruitID



我想在删除数据时使用代码,在创建数据时使用另一个代码,因此在添加水果时使用。

仅使用给定的代码中的部分

if (event.data.previous.exists()){
}


总是在删除数据时执行。

有什么建议么?

谢谢。

最佳答案

云功能具有可用于此特定工作流程的新触发器。


  onWrite(),在实时数据库中创建,销毁或更改数据时触发。
  
  onCreate(),在实时数据库中创建新数据时触发。
  
  onUpdate(),在实时数据库中更新数据时触发。
  
  onDelete(),当从实时数据库中删除数据时触发。


您可以创建两个触发器,onDeleteonCreate

否则,如果要在一个函数中创建它,则可以使用onWrite设置一个函数

export listener = functions.database.ref('/fruit/{fruitId}').onWrite(event => {
  if (!event.data.previous.exists()) {
    // Created Event - Previous data doesn't exist.
  } else if (!event.data.exists()) {
    // Deleted Event - Data doesn't exist.
  } else {
    // Update
  }
}

09-11 18:00
查看更多