firebase - MulticastMessage 为每个用户提供不同的徽章编号
问题描述
我已经在我的服务器端应用程序中设置了 FCM 服务,并且我一直在发送通知(一个接一个)并且按预期工作。
现在,我正在尝试使用 MulticastMessage 发送通知。它运作良好,设备正在正确接收通知。但是我不知道如何为每个用户设置不同的徽章编号。我正在使用该addAllTokens
方法设置设备,并且我正在寻找类似于addAllBadges
发送与我插入的每个设备相对应的徽章列表addAllTokens
,但我找不到解决方案。是否可以?我怎样才能做到这一点?
非常感谢你!
解决方案
您可以通过执行类似的操作来实现这一点.....首先您需要查询您的数据库以分别获取设备令牌和徽章计数
所以说就像你有和数组
const badgeCounts = [{
device_token:'aaaaaaaaaaaaaaaaaaaaaa',
badge_count: 1
},{
device_token:'bbbbbbbbbbbbbbbbbbbbbb',
badge_count: 2
},{
device_token:'cccccccccccccccccccccc',
badge_count: 3
},{
device_token:'dddddddddddddddddddddd',
badge_count: 4
}]
Now you can map over this array and compose array of fcm messages, something like below :-
const fcmMessages = [];
badgeCounts.forEach((data) => {
fcmMessages.push({
token: data.device_token, //device token
apns: {
payload: {
aps: {
alert: {
title: "your title",
body: "your body",
},
badge: data.badge_count, // badge
contentAvailable: true,
},
},
},
data: {
// any payload goes here...
},
notification: {
title: "your title",
body: "your body",
},
});
});
/// in firebase messiging you can do like
messaging.sendAll(fcmMessages);
参考文档https://firebase.google.com/docs/reference/admin/node/admin.messaging.Messaging-1#sendall
推荐阅读
- c# - 如何覆盖自动创建数据网格列标题?
- sql - 如何导出 Oracle 数据库 11g 的精确副本
- yii2 - 在 Yii2 中使用 Kartik 表单在上传字段中显示保存文件的名称
- c++ - 在不知道套接字的情况下关闭网络连接
- primefaces - 如何使用 primefaces 在粘贴时设置 maxlength 函数
我有一个
<p:editor />
with 属性 maxlength 但用户可以粘贴大于 maxlength 的文本。这里我试图检查粘贴的内容是否超过最大长度,如果它是真的,我想剪切子字符串 (0,max) 粘贴的文本。
python - 无法导入python包
- hadoop - 如何使用 Flume 将数据实时写入 HDFS?
- sql - Microsoft SQL Server:如何从任意范围获取下一个可用整数
- string - 在不使用外部文件的情况下批量使用参数和变量中的特殊字符
- protractor - 量角器为每个测试打开新浏览器