我正在将FCM与firebase-admin结合使用,以向多个客户端发送Web推送通知。我想用新邮件替换旧邮件。
这就是我的称呼方式
return await admin.messaging().sendMulticast({
tokens,
notification: {
title: "Message Title",
body: "Message body.",
},
data: {
type: "ring",
callId,
},
webpush: {
fcmOptions: {
link: process.env.PWA_APP_URL,
},
headers: {
Urgency: "high",
},
},
android: {
collapseKey: "ring",
priority: "high",
ttl: 10,
notification: {
color: "#ff0000",
defaultSound: true,
sound: "default",
lightSettings: {
color: "#ffcc00",
lightOffDurationMillis: 1000,
lightOnDurationMillis: 1000,
},
tag: "ring",
vibrateTimingsMillis: [1000, 1000],
visibility: "public",
priority: "max",
},
},
});
当消息到达Android应用客户端时,由于android.collapseKey
属性,消息已折叠。但是我在Web应用程序中无法获得相同的行为。
根据文档,Web通知有一个Topic选项,但是我不确定where to put it。我试图将其用作webpush.headers.Topic
属性,但没有成功。邮件不会在Android / Chrome中折叠。
我在做什么错了?
答案 0 :(得分:0)
我已关注collimarco's tip,可以使用showNotification method折叠通知。
在firebase-admin / server代码中,我必须删除邮件有效负载中的通知字段。现在只是一个data message:
return await admin.messaging().sendMulticast({
tokens,
data: {
type: "ring",
callId,
},
});
在Web应用程序中,我创建了一个background message handler。现在,当我使用带有showNotification
的{{1}}属性发送新消息时,可以调用tag
方法。
renotify=true
仅在消息有效负载上设置这些属性会很棒。