Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript OnDelete Firebase触发器不触发_Javascript_Firebase_Firebase Realtime Database_Google Cloud Functions - Fatal编程技术网

Javascript OnDelete Firebase触发器不触发

Javascript OnDelete Firebase触发器不触发,javascript,firebase,firebase-realtime-database,google-cloud-functions,Javascript,Firebase,Firebase Realtime Database,Google Cloud Functions,我试图在Firebase上为我的云函数使用OnDelete触发器。但是,删除数据(通道id节点)时不会触发。我当前的数据结构是这样的 注意:一个用户id下可以有多个通道id,此图像只是一个模式。我还运行以下代码来检查channel_id的节点是否被删除 exports.deleteSubscriptionsFromFeed = functions.database.ref('/users_subscription/{userID}/{channelID}').onDelete(event =&g

我试图在Firebase上为我的云函数使用OnDelete触发器。但是,删除数据(通道id节点)时不会触发。我当前的数据结构是这样的

注意:一个用户id下可以有多个通道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;
  ...
});

如果您在这方面有任何帮助,我们将不胜感激。

为了能够访问数据库触发器onCreate、onUpdate和onDelete,您需要使用firebase functions module 0.5.9或更高版本。在撰写本文时,最新版本为0.6.0。请使用
npm-upgrade
更新您的模块,或使用类似以下内容选择特定版本:
npm-install-firebase-functions@0.6.0
来自package.json所在的函数目录

通过关注twitter,您可以了解最新的Firebase相关功能。Firebase的云功能处于测试阶段,所以随着新功能的添加和bug的修复,您可以期待频繁的更新


此外,firebase admin的最新版本是5.0.1,这是firebase函数0.6.0的依赖项。

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

firebase函数节点模块是什么版本,如您的package.json中所示?它说我使用0.5.7表示firebase函数,使用4.2.1表示firebase管理员感谢!我刚刚运行了它,但它看起来没有任何东西正在下载。我正在从package.json所在的functions文件夹运行npm升级。编辑:我运行了npm安装firebase-functions@0.6.0和npm安装firebase-functions@5.0.1分别下载。但是package.json文件不会更改版本号。你知道如何解决这个问题吗?它肯定会改变package.json。每当我更改版本时,它都会这样做。我不知道为什么它不会改变……我看了文档,只运行了这两行代码:npm安装--save firebase函数和npm安装-g firebase工具。它没有更新到0.6.0或5.0.1,所以这是否意味着它还没有发布?nvm我让它安装了最新版本@doug stevenson即使是最新版本的OnDelete也没有被解雇。我只是做了一个最小的测试,在路径
/foo/{id1}/{id2}
的onCreate和OnDelete中记录一条消息,当我将
/foo/x1/x2
设置为
true
时,它们都被触发,然后将其删除。这是更新,不是删除。删除意味着现在在提供的位置没有数据。