Javascript OnDelete Firebase触发器不触发
我试图在Firebase上为我的云函数使用OnDelete触发器。但是,删除数据(通道id节点)时不会触发。我当前的数据结构是这样的 注意:一个用户id下可以有多个通道id,此图像只是一个模式。我还运行以下代码来检查channel_id的节点是否被删除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
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
时,它们都被触发,然后将其删除。这是更新,不是删除。删除意味着现在在提供的位置没有数据。