You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome下FCM推送通知失效:仅重装新版恢复,求原因与方案

Chrome推送通知(FCM/GCM)显示"waiting for Backoff"问题解析

为什么更新Chrome无法解决问题?

Chrome的更新采用增量覆盖模式,会完整保留用户的本地配置数据——包括GCM/FCM服务的连接状态缓存、设备注册令牌记录、退避机制触发标记等。你遇到的waiting for Backoff状态,是GCM服务因之前的连接失败触发了指数退避策略,这个退避状态存在本地持久化存储中,更新浏览器不会清理这些损坏的配置项,所以问题无法通过更新解决。

无需重装Chrome的解决方案

以下是更彻底的修复步骤:

  • 重置Chrome通知权限与基础设置

    1. 打开chrome://settings/content/notifications,清除所有网站的通知权限,再重新为你的Angular应用授权通知权限
    2. 进入chrome://settings/advanced,找到「重置并清理」→「重置设置为原始默认值」(此操作不会删除书签、密码,但会重置扩展、权限、偏好设置等)
  • 彻底清除GCM/FCM本地存储目录
    关闭Chrome后,删除以下两个核心存储文件夹(不同系统路径不同):

    • Windows:C:\Users\[你的用户名]\AppData\Local\Google\Chrome\User Data\Default\Push Messaging 和 C:\Users\[你的用户名]\AppData\Local\Google\Chrome\User Data\Default\GCM Store
    • macOS:~/Library/Application Support/Google/Chrome/Default/Push Messaging 和 ~/Library/Application Support/Google/Chrome/Default/GCM Store
    • Linux:~/.config/google-chrome/Default/Push Messaging 和 ~/.config/google-chrome/Default/GCM Store
      重启Chrome后,GCM服务会重新初始化这些目录
  • 强制刷新FCM注册令牌
    在你的Angular应用代码中,调用Firebase获取令牌时添加forceRefresh: true参数,强制清除旧的失效令牌并重新注册:

    import { getToken } from "firebase/messaging";
    import { messaging } from "./firebase-config";
    
    async function refreshFCMToken() {
      const token = await getToken(messaging, {
        vapidKey: "你的VAPID公钥",
        forceRefresh: true // 强制刷新令牌
      });
      // 将新令牌同步到你的后端
    }
    
  • 确认Chrome后台运行权限
    打开chrome://settings/system,确保「继续运行后台应用,即使Chrome已关闭」处于开启状态——GCM推送服务需要后台维持长连接,关闭此权限会导致连接异常触发退避

内容的提问来源于stack exchange,提问作者Hashim Ikram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 09:53:23