我在node.js中具有javascript函数,该函数试图触发某个特定主题下的订阅者。该函数已成功执行,但问题出在该函数持续执行约2至4次,因此向订阅该主题的人员触发了多个通知。我认为我的代码可能有问题。
我尝试了很多事情,例如将通知更改为有效负载中的数据,但建议的答案很少,但是问题似乎仍然相同。
'use-strict'
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.sendNotification =
functions.database.ref('/seach_task_list/{task_id}')
.onCreate((change,context)=> {
const task_id = context.params.task_id;
if(!change.after.exists())
{
return console.log('A notification has been deleted
from the database : ',task_id);
}
const
task_val=admin.database().ref(`seach_task_list/${task_id}`).once('value');
return task_val.then(taskResult =>{
const task_title= taskResult.val().topic_title;
const task_budget=taskResult.val().budget;
const payload={
data : {
title:"New Task",
body: task_title,
task_id : task_id,
}
};
return admin.messaging().sendToTopic("cleaning",payload)
.then(function(response){
console.log('Notification sent
successfully:',response);
})
.catch(function(error){
console.log('Notification sent failed:',error);
});
});
});
我希望主题通知被触发一次。