Javascript 通过NodeJS将消息发布到Firebase云消息
我正试图使用这个包实现一个简单的NodeJS 向我的Firebase CM发送一条简单的推送消息,这样它就可以触发对iPhone的推送通知 我已经完成了以下步骤,不知道为什么它仍然不起作用:Javascript 通过NodeJS将消息发布到Firebase云消息,javascript,node.js,firebase,google-cloud-messaging,firebase-cloud-messaging,Javascript,Node.js,Firebase,Google Cloud Messaging,Firebase Cloud Messaging,我正试图使用这个包实现一个简单的NodeJS 向我的Firebase CM发送一条简单的推送消息,这样它就可以触发对iPhone的推送通知 我已经完成了以下步骤,不知道为什么它仍然不起作用: console.log("START"); var FCM = require('fcm-node') var serverKey = require('/Users/john/Desktop/Apps/APNS/node/mhn-app-firebase-adminsdk-bs4
console.log("START");
var FCM = require('fcm-node')
var serverKey = require('/Users/john/Desktop/Apps/APNS/node/mhn-app-firebase-adminsdk-bs45c-5ac3770488.json')
var fcm = new FCM(serverKey)
var message = { //this may vary according to the message type (single recipient, multicast, topic, et cetera)
to: '##########',
collapse_key: 'green',
notification: {
title: 'Title of your push notification',
body: 'Body of your push notification'
},
data: { //you can send only notification or only data(or include both)
cpeMac: '000000000000',
type: 'malware'
}
}
fcm.send(message, function(err, response){
if (err) {
console.log("Something has gone wrong!")
console.log(err);
} else {
console.log("Successfully sent with response: ", response)
}
})
console.log("END");
结果 我不断陷入困境
console.log(err);
带着这些信息
⚡️ node node app.js
START
END
Something has gone wrong!
{ Error: Messaging payload contains an invalid "collapse_key" property. Valid properties are "data" and "notification".
at FirebaseMessagingError.FirebaseError [as constructor] (/Users/john/Desktop/Apps/APNS/node/node_modules/fcm-node/node_modules/firebase-admin/lib/utils/error.js:25:28)
at new FirebaseMessagingError (/Users/john/Desktop/Apps/APNS/node/node_modules/fcm-node/node_modules/firebase-admin/lib/utils/error.js:130:23)
at /Users/john/Desktop/Apps/APNS/node/node_modules/fcm-node/node_modules/firebase-admin/lib/messaging/messaging.js:465:23
at Array.forEach (<anonymous>)
at Messaging.validateMessagingPayload (/Users/john/Desktop/Apps/APNS/node/node_modules/fcm-node/node_modules/firebase-admin/lib/messaging/messaging.js:462:21)
at /Users/john/Desktop/Apps/APNS/node/node_modules/fcm-node/node_modules/firebase-admin/lib/messaging/messaging.js:204:37
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
at Function.Module.runMain (module.js:686:11)
at startup (bootstrap_node.js:187:16)
errorInfo:
{ code: 'messaging/invalid-payload',
message: 'Messaging payload contains an invalid "collapse_key" property. Valid properties are "data" and "notification".' } }
⚡️ node app.js
开始
结束
出了点问题!
{错误:消息传递负载包含无效的“collapse_key”属性。有效属性为“data”和“notification”。
在FirebaseMessagingError.FirebaseError[作为构造函数](/Users/john/Desktop/Apps/APNS/node/node_modules/fcm node/node_modules/firebase admin/lib/utils/error.js:25:28)
在新的FirebaseMessaginError(/Users/john/Desktop/Apps/APNS/node/node_modules/fcm node/node_modules/firebase admin/lib/utils/error.js:130:23)
在/Users/john/Desktop/Apps/APNS/node/node_modules/fcm node/node_modules/firebase admin/lib/messaging/messaging.js:465:23
在Array.forEach()处
在Messaging.validateMessagePayload(/Users/john/Desktop/Apps/APNS/node/node_modules/fcm node/node_modules/firebase admin/lib/Messaging/Messaging.js:462:21)
在/Users/john/Desktop/Apps/APNS/node/node_modules/fcm node/node_modules/firebase admin/lib/messaging/messaging.js:204:37
在
在进程中。_tick回调(内部/process/next_tick.js:188:7)
位于Function.Module.runMain(Module.js:686:11)
启动时(bootstrap_node.js:187:16)
错误信息:
{代码:'消息传递/无效负载',
消息:'消息有效负载包含无效的“折叠密钥”属性。有效属性为“数据”和“通知”。'}
我不知道该把什么作为折叠键。如何在我的Firebase帐户上找到它?您需要折叠密钥:“新建消息”和通知:{tag:“新建消息”}
仅就您的上下文而言,collapse_key在设备脱机时可用,当恢复internet连接时,它将只发送脱机时收到的最后一次通知。您需要collapse_key:“new_message”和通知:{tag:“new_message”}
仅就您的上下文而言,collapse_key在设备脱机时可用,当恢复internet连接时,它将只发送脱机时收到的最后一次通知。您只需要Firebase控制台中的
collapse_key
您只需要Firebase控制台中的collapse_key
console.log("START");
var FCM = require('fcm-node');
var serverKey = require('secretKeyJson_path')
var fcm = new FCM(serverKey)
var collapseKey = 'new_message';
var message = {
to: 'client_app_token',
data: {
cpeMac: '000000000000',
type: 'malware'
},
notification: {
title: 'Hello motherfucker',
body: 'Nice body',
tag: collapseKey,
icon: 'ic_notification',
color: '#18d821',
sound: 'default',
},
};
fcm.send(message, function(err, response){
if (err) {
console.log("Something has gone wrong!")
console.log(err);
} else {
console.log("Successfully sent with response: ", response)
}
})
console.log("END");