Firebase主题通知被多次触发

时间:2019-08-10 07:55:54

标签: javascript firebase firebase-realtime-database google-cloud-functions

我在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);
});




 });
  });

我希望主题通知被触发一次。

0 个答案:

没有答案