Javascript Android设备从脱机状态返回时仅接收最后一次推送通知(而不是接收所有挂起的通知)

Javascript Android设备从脱机状态返回时仅接收最后一次推送通知(而不是接收所有挂起的通知),javascript,android,firebase,push-notification,Javascript,Android,Firebase,Push Notification,我们正在使用FCM向android设备上的应用程序发送推送通知。设备在线时(后台和前台)能够接收所有通知。但我们面临一个问题。如果设备处于脱机模式(关闭WiFI),并且如果我们的服务器发送了多个通知(超过1个),并且如果我们在10分钟后(而不是4周)将设备重新联机(打开WiFI),则设备将只接收最后一次通知,而不是接收所有待处理的通知 根据firebase文档,“如果设备未连接到GCM,则消息将被存储,直到建立连接为止(同样遵守折叠密钥规则)。当建立连接时,GCM将向设备发送所有挂起的消息。如果

我们正在使用FCM向android设备上的应用程序发送推送通知。设备在线时(后台和前台)能够接收所有通知。但我们面临一个问题。如果设备处于脱机模式(关闭WiFI),并且如果我们的服务器发送了多个通知(超过1个),并且如果我们在10分钟后(而不是4周)将设备重新联机(打开WiFI),则设备将只接收最后一次通知,而不是接收所有待处理的通知

根据firebase文档,“如果设备未连接到GCM,则消息将被存储,直到建立连接为止(同样遵守折叠密钥规则)。当建立连接时,GCM将向设备发送所有挂起的消息。如果设备从未再次连接(例如,如果是出厂重置),消息最终将超时并从GCM存储器中丢弃。默认超时为4周,除非设置了time to live标志。“在向firebase发送通知时,我们没有设置ttl值,也没有使用可折叠消息。因此,ttl的默认值应为4周,并且都是不可折叠的消息。但是,当设备重新联机时,仍然只接收最后一条消息

下面是服务器代码(javascript),我们在其中使用firebase向设备发送通知

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在设备重新联机时是否更改了有关通知传递的任何内容,请任何人告诉我

注意:

我已经阅读了很多在线教程和下面的堆栈溢出问题。没有一个有助于理解这个问题


我认为即使未指定显式折叠键,通知消息也会默认折叠。请检查:我认为即使未指定显式折叠键,通知消息也会默认折叠。请检查: