gpt4 book ai didi

javascript - 使用 Firebase Cloud Functions 发送通知时循环

转载 作者:行者123 更新时间:2023-12-03 03:24:33 25 4
gpt4 key购买 nike

我已经为此苦苦挣扎了很长一段时间,我真的不知道为什么会发生这种情况。

我正在使用云功能根据状态变化发送通知。这是我的代码:

exports.sample = functions.database.ref('users/{pushID}/status').onUpdate(Snap => {
const key = Snap.params.pushID;

var ref = admin.database().ref('users');
return ref.child(`${key}`).on("value", function(snap) {

const category = snap.child('category').val();
console.log("category",category);

var ref = admin.database().ref('/categories/')
return ref.child(`${category}`).on("value", function(snapshot){

const tokenID = snapshot.child('tokenID').val();
const payload = {
data: {
title: 'HELLO',
text: `HOW ARE YOU ?`
}
};

return admin.messaging().sendToDevice(tokenID, payload);


})

});

部署该功能后,我使用仪表板更改状态。

当我这样做时,我会收到通知! (我在日志上得到“发送”)但是当我再次更改“状态”时,我收到两个通知!现在我在日志上“发送”了两次,等等。

这似乎是一个循环,但我不明白为什么,无论我记录什么,我都只得到一个值,我没有得到多个 token 或任何东西,它只是向同一用户发送相同的通知。

每当我重新部署该功能时,“计数器”都会重置,然后第一个更改仅发送一个通知。

我的数据库如下所示:

users
-->push id
---->status=""
---->category="test"

categories
-->test

最佳答案

您的听众应使用 once() 附加而不是 on()。 on() 留下附加的监听器。

关于javascript - 使用 Firebase Cloud Functions 发送通知时循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46393374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com