我使用Firebase Cloud Messaging (FCM)向android设备发送PWA的提醒通知,提醒是在正确的时间发送的,但是它以不同的格式发送通知2次(截图:https://i.stack.imgur.com/Hywao.jpg)。
我使用Firebase函数在正确的时间触发通知。然而,我用NodeJS编写的函数似乎不是问题,因为当我在控制台上测试FCM活动时,我也收到2个通知而不是1个。
函数日志似乎只发送了一个通知。
if (new Date(currentTime).getHours() === new Date(reminderDate).getHours() && new Date(currentTime).getMinutes() === new Date(reminderDate).getMinutes()) {
const devicetoken = user.data().deviceToken;
const userId = user.id;
console.log(`Sending intake notification to user ${userId}`);
const payload = {
notification: {
title: "Erinnerung Tabletteneinnahme",
body: "test",
image: "https://firebasestorage.googleapis.com/v0/b/lilly-c51cf.appspot.com/o/FCMImages%2Ficon.png?alt=media&token=94b9d38c-c141-4aa9-8cb5-1cf70eb165ca",
icon: "https://firebasestorage.googleapis.com/v0/b/lilly-c51cf.appspot.com/o/FCMImages%2Ficon.png?alt=media&token=94b9d38c-c141-4aa9-8cb5-1cf70eb165ca",
}
};
admin.messaging().sendToDevice(devicetoken, payload);
}
对于消息负载,如果您发送notification
属性,firebase messaging sw将自动显示通知。
如果您使用data
属性,那么firebase消息传递软件将不会自动显示通知,您拥有所有的控制权。
基本上改变你构建有效负载的方式,像这样:
// Notification details.
const payload = {
data: {
title: 'title',
body: `a body thingy`,
icon: 'http://someicon.com/someicon.png',
},
};
// Send to device
await admin.messaging().sendToDevice(devicetoken, payload);
p。S:看来sendToDevice()
现在已经被弃用了