OnDelete Firebase触发器不会触发

时间:2017-07-21 17:18:49

标签: javascript firebase firebase-realtime-database google-cloud-functions

我正在尝试在Firebase上使用OnDelete触发器来实现我的云功能。但是,删除数据(channel_id节点)时不会触发。我目前的数据结构是这样的。 enter image description here

注意:user_id下面可以有多个channel_id,这个图像只是一个模式。我还运行以下代码来检查channel_id的节点是否被删除。

exports.deleteSubscriptionsFromFeed = functions.database.ref('/users_subscription/{userID}/{channelID}').onDelete(event => {
  let channelID = event.data.previous.key;
  let subscriberID = event.data.previous.ref.parent.key;
  console.log(channelID);
  console.log("here");
  ...
});

这不会被解雇,我试图找出如何使其工作。有关更多信息,我也正在运行这样的OnCreate函数,它确实会触发。所以我不确定为什么OnDelete不起作用。

exports.addSubscriptionsToFeed = functions.database.ref('/users_subscription/{userID}/{channelID}').onCreate(event => {
  let channelID = event.data.key;
  let subscriberID = event.data.ref.parent.key;
  ...
});

对此有任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

为了访问onCreate,onUpdate和onDelete上的数据库触发器,您需要使用firebase-functions模块0.5.9或更高版本。在撰写本文时,最新的是0.6.0。请使用npm upgrade更新您的模块,或者从package.json所在的函数目录中选择具有如下内容的特定版本:npm install firebase-functions@0.6.0

您可以通过Twitter上的@FirebaseRelease了解最新的Firebase相关功能。适用于Firebase的云功能处于测试阶段,因此您可以在添加新功能并修复错误时频繁更新。

此外,最新版本的firebase-admin是5.0.1,它是firebase-functions 0.6.0的依赖项。

答案 1 :(得分:0)

因此我们发现问题在于根节点更新时不会触发OnDelete。例如,我只是使用新字典设置user_id的值,而不是显式删除或将channel_id的值设置为null。