Firebase Messaging Web - 接收消息不起作用

时间:2017-10-08 17:57:19

标签: firebase firebase-cloud-messaging

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

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

Curl响应似乎没问题 { “multicast_id”:XXX, “成功”:1, “失败”:0, “canonical_ids”:0 “结果”:[{ “MESSAGE_ID”: “XXX”}]}

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

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

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

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\"}"

更新
我已经尝试了快速启动示例,但它不起作用。我得到了同样的响应成功:1回来但我在浏览器中没有看到任何通知 https://github.com/firebase/quickstart-js/tree/master/messaging

1 个答案:

答案 0 :(得分:2)

发现问题和解决方案。

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

如何查找状态并解决此问题:
打开Chrome并输入此网址“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退出并重新登录。
现在它应该工作并显示连接。