有没有办法更新Firebase Cloud Message(FCM)发送到web应用程序的通知,而不是创建新的通知?

有没有办法更新Firebase Cloud Message(FCM)发送到web应用程序的通知,而不是创建新的通知?,firebase,firebase-cloud-messaging,Firebase,Firebase Cloud Messaging,我正在使用FCM进行聊天应用。每次用户收到消息时,我都会通过FCM向他发送通知。如果用户不在前台使用我的web应用程序,则消息处理将在默认的服务工作程序中进行,该服务工作程序使用我在请求正文中指定的参数生成通知。问题是,每次发送新的推送消息并且应用程序处于后台时,浏览器(在Chrome和Firefox上测试)都会创建一条新消息,而不是更新现有消息。我想保持已经可见的通知,只更新其值,这是可能的吗 如果应用程序不在前台,则处理推送的服务工作人员: 发送到FCM服务器的请求的JSON主体 好的,我发

我正在使用FCM进行聊天应用。每次用户收到消息时,我都会通过FCM向他发送通知。如果用户不在前台使用我的web应用程序,则消息处理将在默认的服务工作程序中进行,该服务工作程序使用我在请求正文中指定的参数生成通知。问题是,每次发送新的推送消息并且应用程序处于后台时,浏览器(在Chrome和Firefox上测试)都会创建一条新消息,而不是更新现有消息。我想保持已经可见的通知,只更新其值,这是可能的吗

如果应用程序不在前台,则处理推送的服务工作人员: 发送到FCM服务器的请求的JSON主体 好的,我发现它显示了json主体的所有可用选项。为了满足我的需要,我只需要在json主体中的通知obj上添加“tag”参数如果要更新通知,请使用相同的标记发送通知。例如:

{
    "notification": {
        "title": "",
        "body": "",
        "click_action": "",
        "icon": "",
        "tag" : "this must be the same for the notifications you want to update"
    },
    "to": "****",
    "data": {}
    }
}

在某些情况下,您可能需要替换通知来通知用户,而不是静默更新。聊天应用程序就是一个很好的例子。在这种情况下,您应该将
标记
renotify
设置为true

在你的
sw.js

    const title = 'Notification 2 of 2';
    const options = {
      tag: 'renotify',
      renotify: true
    };
    registration.showNotification(title, options);
您可以通过单击
renotify
按钮来测试演示


很高兴听到您找到了相关文档。除了链接到文档(可能会随着时间的推移而改变),您是否可以在答案中包含最小的相关信息?
renotify
没有文档记录。您从哪里获得的?
renotify
作为WebpushNotification的一部分进行了记录。在几个章节中都提到了这一点
{
    "notification": {
        "title": "",
        "body": "",
        "click_action": "",
        "icon": "",
        "tag" : "this must be the same for the notifications you want to update"
    },
    "to": "****",
    "data": {}
    }
}
    const title = 'Notification 2 of 2';
    const options = {
      tag: 'renotify',
      renotify: true
    };
    registration.showNotification(title, options);