如何使Firebase推送通知在颤振中接收通知时增加徽章计数? 首先,这是一个自我回答的问题。 其次,我将尝试详细描述我针对这种情况实施的解决方案 出现的问题是:无法动态增加徽章属性 资料来源: 那么我如何让这个徽章属性自动递增呢。? 我回答的答案如下,第一个答案 此外,当您在多个移动设备上执行此操作时,您需要的是:
重要强>如何使Firebase推送通知在颤振中接收通知时增加徽章计数? 首先,这是一个自我回答的问题。 其次,我将尝试详细描述我针对这种情况实施的解决方案 出现的问题是:无法动态增加徽章属性 资料来源: 那么我如何让这个徽章属性自动递增呢。? 我回答的答案如下,第一个答案 此外,当您在多个移动设备上执行此操作时,您需要的是:,firebase,flutter,notifications,badge,Firebase,Flutter,Notifications,Badge,重要 按照下面答案中的步骤进行操作 B1。在每个设备令牌中包含徽章编号。 B2。在应用程序初始化并生成fcm令牌时更改此设置 FirebaseFirestore.instance.collection('fcm-token').doc(device_name).set({'device1_pt1': token_id,'number': 0}); B3。然后把它放在消息is call上。(onlauch,onresume,onmessage) B1。创建新的集合,如 B2。在API中
- 按照下面答案中的步骤进行操作
FirebaseFirestore.instance.collection('fcm-token').doc(device_name).set({'device1_pt1': token_id,'number': 0});
B3。然后把它放在消息is call上。(onlauch,onresume,onmessage)
B1。创建新的集合,如 B2。在API中(处理数据): 收到的数据:数据={'token-device':字符串,'body':'String'} #从firebase读取徽章编号(在B1处创建): 保存到firestore之前的数据:数据={'token-device':字符串,'body':'String','badge':'1'} 在Firebase函数中(文件index.js) B4:在颤振中: 重置徽章编号=0
_configureFirebaseListeners() {
_firebaseMessaging.requestNotificationPermissions(
const IosNotificationSettings(sound: true, badge: true, alert: true),
);
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
print('onMessage: $message');
_setMessage(message);
},
onLaunch: (Map<String, dynamic> message) async {
print('onLaunch: $message');
_setMessage(message);
},
onResume: (Map<String, dynamic> message) async {
print('onResume: $message');
_setMessage(message);
},
);
}
_setMessage(Map<String, dynamic> message) {
FirebaseFirestore.instance.collection('badge').doc('count').set({'number': 0});
\u配置FireBaseListeners(){
_firebaseMessaging.requestNotificationPermissions(
const IONotificationSettings(声音:真、徽章:真、警报:真),
);
_firebaseMessaging.configure(
onMessage:(映射消息)异步{
打印('onMessage:$message');
_设置消息(消息);
},
onLaunch:(映射消息)异步{
打印('onLaunch:$message');
_设置消息(消息);
},
onResume:(映射消息)异步{
打印('onResume:$message');
_设置消息(消息);
},
);
}
_设置消息(映射消息){
FirebaseFirestore.instance.collection('badge').doc('count').set({'number':0});
演示:如果您想在多台设备上使用此功能,则必须在fcm-token_设备中包含数字徽章。在每台设备上使用此功能。Hey Jayce。感谢您分享此常见问题的解决方案。@FrankvanPuffelen好的
badge = db.collection('badge').document('count').get()._data
badge = badge['number'] badge += 1 #increate when receive new data.
badgedx = db.collection('badge').document('count').update({'number' : badge})
Data['badge'] = str(badge) # must be string
#Save to firestore
addx = todo_ref.document()
addx.set(Data) #save to firestore
> Add badge number
var badgecount = newData['badge'];
var options = {
priority: "high",
timeToLive: 60 * 60 * 24
};
var payload = {
notification: {
title: 'title',
body: 'Phiếu khảo sát khách hàng',
sound: 'default',
alert: 'alert',
badge: badgecount,
},
data: {
click_action: 'FLUTTER_NOTIFICATION_CLICK',
key1: newData['content'],
},
};`
_configureFirebaseListeners() {
_firebaseMessaging.requestNotificationPermissions(
const IosNotificationSettings(sound: true, badge: true, alert: true),
);
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
print('onMessage: $message');
_setMessage(message);
},
onLaunch: (Map<String, dynamic> message) async {
print('onLaunch: $message');
_setMessage(message);
},
onResume: (Map<String, dynamic> message) async {
print('onResume: $message');
_setMessage(message);
},
);
}
_setMessage(Map<String, dynamic> message) {
FirebaseFirestore.instance.collection('badge').doc('count').set({'number': 0});