Firebase Admin SDK 发送多播
Firebase Admin SDK sendMulticast
这段带有较小令牌列表的代码可以正常工作,但我不知道为什么当令牌单独有效时它无法向所有令牌发送通知。
我做错了什么?当令牌列表包含较少的令牌时,将发送所有通知。最多有 30 个令牌。
let notificationData = {
Id: messageInfo.ChatId,
Type: notificationType.ChatMessage,
Data: chatRoom
};
var payload = {
notification: {
title: title,
body: body,
},
data: {
NotificationData: JSON.stringify(notificationData),
},
apns: {
payload: {
aps: {
sound: "default",
},
},
},
};
payload.tokens = chatRoom.FCMTokens;
return admin.messaging().sendMulticast(payload).then(response => {
if (response.failureCount > 0) {
const failedTokens = [];
response.responses.forEach((resp, idx) => {
if (!resp.success) {
failedTokens.push(payload.tokens[idx]);
}
});
console.log('List of tokens that caused failures: ' + JSON.stringify(response));
console.log('List of tokens that caused failures: ' + failedTokens);
}
else {
console.log("Successsfully MulticastMessage");
}
return null;
}).catch(error => {
console.log("Error sending notification", error);
return null;
});
更多信息:
问题是负载中的许多用户超过了 4kb
通知消息可以包含可选的数据负载。两种消息类型的最大负载均为 4KB,但从 Firebase 控制台发送消息时除外,它强制执行 1024 个字符的限制。
这段带有较小令牌列表的代码可以正常工作,但我不知道为什么当令牌单独有效时它无法向所有令牌发送通知。
我做错了什么?当令牌列表包含较少的令牌时,将发送所有通知。最多有 30 个令牌。
let notificationData = {
Id: messageInfo.ChatId,
Type: notificationType.ChatMessage,
Data: chatRoom
};
var payload = {
notification: {
title: title,
body: body,
},
data: {
NotificationData: JSON.stringify(notificationData),
},
apns: {
payload: {
aps: {
sound: "default",
},
},
},
};
payload.tokens = chatRoom.FCMTokens;
return admin.messaging().sendMulticast(payload).then(response => {
if (response.failureCount > 0) {
const failedTokens = [];
response.responses.forEach((resp, idx) => {
if (!resp.success) {
failedTokens.push(payload.tokens[idx]);
}
});
console.log('List of tokens that caused failures: ' + JSON.stringify(response));
console.log('List of tokens that caused failures: ' + failedTokens);
}
else {
console.log("Successsfully MulticastMessage");
}
return null;
}).catch(error => {
console.log("Error sending notification", error);
return null;
});
更多信息:
问题是负载中的许多用户超过了 4kb
通知消息可以包含可选的数据负载。两种消息类型的最大负载均为 4KB,但从 Firebase 控制台发送消息时除外,它强制执行 1024 个字符的限制。