【问题标题】:Firebase Messaging Web - Receiving Message does not workFirebase 消息传递 Web - 接收消息不起作用
【发布时间】:2017-10-08 17:57:18
【问题描述】:

我已完成 Firebase 消息传递教程 和所有必需的步骤。 我从消息服务收到了权限请求和令牌

但是,如果我想尝试使用 CURL(或通过 javascript fetch 方法)向浏览器发送消息,则不会调用“onMessage”和“firebase-messaging-sw”。

Curl 响应似乎还可以: {"multicast_id":xxx,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"xxx"}]}

所以我得到了成功:1 但它不起作用。
任何人都可以帮助为什么这不起作用以及我可以在哪里检查问题?

我正在使用 Chrome 浏览器和“firebase serve”命令在本地计算机 Windows 10 上工作。 本地网址为http://localhost:5000!

我在命令窗口中使用的 curl 是:

curl -X POST -H "Authorization: key=server-key" -H "Content-Type: application/json" https://fcm.googleapis.com/fcm/send -d "{  \"notification\": {    \"title\": \"Test\",    \"body\": \"TestBody\",    \"icon\": \"firebase-logo.png\",    \"click_action\": \"http://localhost:8081\"  },  \"to\": \"tokenId\"}"

更新:
我还尝试了快速入门示例,但它不起作用。我得到了相同的响应 success:1 ,但在我的浏览器中没有看到任何通知。
https://github.com/firebase/quickstart-js/tree/master/messaging

【问题讨论】:

  • 克里斯,我刚刚测试了 FCM 快速入门示例,它在我的计算机 (MacOS) 上运行良好:我在http://localhost:8081/ 收到桌面通知或更新(如果选项卡没有焦点或拥有它),并调用onMessage 处理程序。会不会是您同时运行了两个 Chrome 实例(例如 Canary + 常规 Chrome),而您正在观看错误的实例?
  • 谢谢,但我发现了问题并刚刚发布了解决方案。

标签: firebase firebase-cloud-messaging


【解决方案1】:

找到问题和解决方案。

问题是:
Chrome 中的 GCM 连接状态为“未连接”

如何找到状态并解决这个问题:
打开 Chrome 并输入此 URL“chrome://gcm-internals”。
在这里,您将看到所有状态和消息。
重要的是“连接状态”。 我有“等待退避”
这就是问题所在,因为您应该在此处看到 “CONNECTED”

如何解决这个问题:
首先尝试删除您 PC 上的 GCM Store 文件夹。

您可以在该用户的 Chrome 配置文件中找到 GCM Store 文件夹。下面将是默认值,否则它将是 Profile 1、Profile 2 等等。

在 Windows 10 / 8 / 7 / Vista 上:
C:\Users\%USERNAME%\AppData\Local\Google\Chrome\User Data\Default

删除此文件夹后,重新启动 Chrome 并再次检查 "chrome://gcm-internals"(如果您看到 "CONNECTED")。

如果不尝试退出 Chrome 并重新登录。
现在它应该可以工作并显示已连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 2022-08-19
    相关资源
    最近更新 更多