我尝试向单个设备发送消息,即单个注册ID,但它工作正常但是当尝试添加多个注册ID时,它提供了“InvalidServerResponse”'错误。 例如适用于regTokens =' regId1&#39 ;; 但是不适用于regTokens = [' regId1',' regId2'];
var FCM = require('fcm-node');
// Add API Key
var fcm = new FCM('<server-key>');
exports.sendMessage = function (regTokens, messageToSend, callback) {
var message = { //this may vary according to the message type (single recipient, multicast, topic, et cetera)
to: regTokens,
data: {
ar_message: messageToSend
}
};
fcm.send(message, function(err, response){
if (err) {
console.log("Something has gone wrong!",err);
} else {
console.log("Successfully sent with response: ", response);
}
callback(err, 'Success');
});
}
&#13;
答案 0 :(得分:6)
更新:对于 v1 ,似乎不再支持registration_ids
。强烈建议使用主题。
发送到指定的多个注册令牌时,您必须使用registration_ids
而不是to
。从文档(强调我的):
此参数指定多播消息的收件人,即发送到多个注册令牌的消息。
该值应为要向其发送多播消息的注册令牌数组。该数组必须包含至少1个且最多1000个注册令牌。要将消息发送到单个设备,请使用to参数。
只允许使用HTTP JSON格式组播消息。
var message = {
registration_ids: regTokens,
data: {
ar_message: messageToSend
}
};
答案 1 :(得分:1)
此线程的更新:使用admin.messaging.Messaging.sendToDevice()
将消息发送到多个android设备。
https://firebase.google.com/docs/reference/admin/node/admin.messaging.Messaging#sendToDevice
messaging.sendToDevice(registrationTokens,有效负载,选项)
registrationTokens:字符串数组(收件人的令牌)
有效载荷:消息有效载荷
选项:(可选)admin.messaging.MessagingOptions
答案 2 :(得分:0)
var message = {
// to : "token", //for single device
registration_ids: ["token1", "token2"], // for Multiple device
collapse_key: 'your_collapse_key',
notification: notify,
data: payload,
};