我正在使用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)
}
})
}
}