使用fcm-node向多个应用发送通知

时间:2019-11-20 09:50:11

标签: node.js firebase push-notification

我正在使用fcm-node将通知发送到其他带有白色标签的应用程序。我的第一个firebase项目有35个应用程序,现在我需要为更多应用程序创建不同的项目。两个项目都有不同的serverKey,当我在不同条件下使用不同的serverKey时,显示如下:

  

错误:默认的Firebase应用程序已存在。   主页/pradudit/ingenium_backend/node_modules/firebase-admin/lib/firebase-namespace.js:38

     

扔新   error_1.FirebaseAppError(error_1.AppErrorCodes.DUPLICATE_APP,'   默认的Firebase应用已存在。这意味着你打电话   initializeApp()'+                   ^

     

错误:默认的Firebase应用程序已存在。这意味着你打电话   在不提供应用名称作为   第二个论点。在大多数情况下,您只需要调用initializeApp()   一旦。但是,如果您确实要初始化多个应用,请再传递一秒钟   为initializeApp()赋予每个应用程序唯一名称的参数。       在FirebaseAppError.FirebaseError [作为构造函数](/home/pramudit/ingenium_backend/node_modules/firebase-admin/lib/utils/error.js:25:28)       在新的FirebaseAppError(/home/pramudit/ingenium_backend/node_modules/firebase-admin/lib/utils/error.js:70:23)       在FirebaseNamespaceInternals.initializeApp(/home/pramudit/ingenium_backend/node_modules/firebase-admin/lib/firebase-namespace.js:38:23)       在FirebaseNamespace.initializeApp(/home/pramudit/ingenium_backend/node_modules/firebase-admin/lib/firebase-namespace.js:237:30)       在新的FCM(/home/pramudit/ingenium_backend/node_modules/fcm-node/lib/fcm.js:147:23)       在对象。 (/home/pramudit/ingenium_backend/data/dl.js:22:13)       在Module._compile(module.js:573:30)       在Object.Module._extensions..js(module.js:584:10)       在Module.load(module.js:507:32)       在tryModuleLoad(module.js:470:12)       在Function.Module._load(module.js:462:3)       在Module.require(module.js:517:17)       在要求时(internal / module.js:11:18)       在对象。 (/home/pramudit/ingenium_backend/business/bl.js:10:10)       在Module._compile(module.js:573:30)       在Object.Module._extensions..js(module.js:584:10)

我的代码是:

    var FCM = require('fcm-node')
    var serverKey = require('./ingenium-backend-197210-firebase-adminsdk-1i12n-ade739981e.json')
    var serverKey2 = require('./ingenium-backend2-firebase-adminsdk-h0l79-7485f207f3.json')
    var fcm = new FCM(serverKey)
    var fcm_2 = new FCM(serverKey2, "Secondary")

我用来发送通知的功能是

    function sendNotification (message,title,topic,client_id,callback){
      var notification = { 
//this may vary according to the message type (single recipient, multicast, topic, et cetera)
            to: `/topics/${topic}`
    ,
            data: {  
//you can send only notification or only data(or include both)
                title: `${title}`,
                body: `${message}`
            }
        }
        if(client_id > 35){
        fcm_2.send(notification, function(err, response){
              if (err) {
                  console.log("Something has gone wrong!")
                  callback(err)
              } else {
                  console.log("Successfully sent with response: ", response)
                  callback(null,response)
              }
          })
        }
        else {
        fcm.send(notification, function(err, response){
              if (err) {
                  console.log("Something has gone wrong!")
                  callback(err)
              } else {
                  console.log("Successfully sent with response: ", response)
                  callback(null,response)
              }
          })

        }
    }

0 个答案:

没有答案