gpt4 book ai didi

node.js - 实时数据库功能不断触发

转载 作者:太空宇宙 更新时间:2023-11-04 03:20:38 24 4
gpt4 key购买 nike

我已经为 Firebase 实时数据库触发器部署了一个 JS 函数。在其操作中,它应该仅在数据库中的值更新时发送推送通知,这非常简单:

{
"rollo" : "yes"
}

如果值更改为 yes,则应触发通知。如果它变为“否”,那么它不应该执行任何操作。这是 JS 函数:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

exports.sendNewPostNotif = functions.database.ref('/rollo').onUpdate((change, context) => {

console.log('Push notification event triggered');
const beforeData = change.before.val();

const payload = {
notification: {
title: 'Push triggered!',
body: "Push text",
sound: "default"
}
};

const options = {
priority: "high",
timeToLive: 60 * 10 * 1
};

return admin.messaging().sendToTopic("notifications", payload, options);
});

此外,即使我设置了 TTL,每个值更改都会发送另一个推送通知。

有什么想法吗?

最佳答案

我会尝试这样的事情:

exports.sendNewPostNotif = functions.database.ref('/rollo').onWrite((change, context) => {

const newData = change.after.val();
const oldData = change.before.val();

const payload = {
notification: {
title: 'Push triggered!',
body: "Push text",
sound: "default"
}
};

const options = {
priority: "high",
timeToLive: 60 * 10 * 1
};
if (newData != oldData && newData == 'yes') {
return admin.messaging().sendToTopic("notifications", payload, options);
}
});

关于node.js - 实时数据库功能不断触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50821304/

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