【问题标题】:Cloud Functions for Firebase: How to get the value of the data that was deletedCloud Functions for Firebase:如何获取已删除数据的值
【发布时间】:2020-04-26 22:32:08
【问题描述】:

当我添加一个响应删除事件的云函数时,比如这个:

exports.onDeleteSector = functions.database.ref('/sectores/{idSector}').onDelete((event) =>

我可以在event.params.idSector 中获得要删除的扇区的密钥,证明触发器有效,但是,event.data.val() 返回 null。

删除的记录包含对要删除的子项的引用。我怎样才能在父母离开之前得到这些?

谢谢

【问题讨论】:

    标签: firebase google-cloud-functions


    【解决方案1】:

    event.data.val() 返回 null,因为这是触发时数据库的当前值。对于所有类型的数据库触发器,情况都会如此。对于 onDelete,这将始终为 null。

    如果您想查看事件发生之前以前在该位置的情况,请查看event.data.previous.val()。另请参阅DeltaSnapshot 的文档,这是event.data 的数据类型。

    【讨论】:

    • 不再存在。不知道我们如何使用 DataSnapshot 来做到这一点。
    • @OliverDixon API 在 1.0 版中发生了变化。阅读本文以了解发生了什么变化:firebase.google.com/docs/functions/beta-v1-diff
    • 如果你能更新 v1 的答案就太好了。 @DougStevenson
    【解决方案2】:

    正在删除的条目的值可在以下位置获得:

    event.data.previous.val()
    

    【讨论】:

      【解决方案3】:

      目前从onDelete触发器获取已删除数据的方式如下:

      exports.userDeleted = functions.firestore
        .document("users/{userId}")
        .onDelete((snapshot) => {
          const original = snapshot.data();
          // original contains the deleted data
        });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-24
        • 1970-01-01
        • 2017-08-30
        • 1970-01-01
        相关资源
        最近更新 更多