Javascript Android设备从脱机状态返回时仅接收最后一次推送通知(而不是接收所有挂起的通知)
我们正在使用FCM向android设备上的应用程序发送推送通知。设备在线时(后台和前台)能够接收所有通知。但我们面临一个问题。如果设备处于脱机模式(关闭WiFI),并且如果我们的服务器发送了多个通知(超过1个),并且如果我们在10分钟后(而不是4周)将设备重新联机(打开WiFI),则设备将只接收最后一次通知,而不是接收所有待处理的通知 根据firebase文档,“如果设备未连接到GCM,则消息将被存储,直到建立连接为止(同样遵守折叠密钥规则)。当建立连接时,GCM将向设备发送所有挂起的消息。如果设备从未再次连接(例如,如果是出厂重置),消息最终将超时并从GCM存储器中丢弃。默认超时为4周,除非设置了time to live标志。“在向firebase发送通知时,我们没有设置ttl值,也没有使用可折叠消息。因此,ttl的默认值应为4周,并且都是不可折叠的消息。但是,当设备重新联机时,仍然只接收最后一条消息 下面是服务器代码(javascript),我们在其中使用firebase向设备发送通知Javascript Android设备从脱机状态返回时仅接收最后一次推送通知(而不是接收所有挂起的通知),javascript,android,firebase,push-notification,Javascript,Android,Firebase,Push Notification,我们正在使用FCM向android设备上的应用程序发送推送通知。设备在线时(后台和前台)能够接收所有通知。但我们面临一个问题。如果设备处于脱机模式(关闭WiFI),并且如果我们的服务器发送了多个通知(超过1个),并且如果我们在10分钟后(而不是4周)将设备重新联机(打开WiFI),则设备将只接收最后一次通知,而不是接收所有待处理的通知 根据firebase文档,“如果设备未连接到GCM,则消息将被存储,直到建立连接为止(同样遵守折叠密钥规则)。当建立连接时,GCM将向设备发送所有挂起的消息。如果
const admin = require('firebase-admin');
const serviceAccount = require("./ServiceAccountKey_Nightly.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "XXXXXXXX"
});
const mobileToken = "xxxxxxxxxxxxxxxxxxxxxx";
const message = {
token: mobileToken, // To send device-level message
data: {
message: "Test!",
notification: {
title: 'Notification from server - x', // Changing x value every time when I send message
body: 'Server notification - x'
},
};
// Send a message to devices subscribed to the provided topic.
admin.messaging().send(message)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:', response);
})
.catch((error) => {
console.log('Error sending message:', error);
});
如果我在发送通知时需要设置任何其他参数,或者Firebase在设备重新联机时是否更改了有关通知传递的任何内容,请任何人告诉我
注意:
我已经阅读了很多在线教程和下面的堆栈溢出问题。没有一个有助于理解这个问题