小编agr*_*kid的帖子

即使发送消息后,Firebase 云消息传递 onMessage 也不会在 React 应用程序中触发

我正在我的 React 应用程序中测试 Firebase Cloud Messaging 功能,该功能是通过 create-react-app 引导的。请注意,我已经正确初始化了 firebase(包括服务器端的 admin SDK),并且我的客户端部署在 https 上。到目前为止我所做的是:

  1. 在 firebase.js 中初始化 firebase 消息传递,并请求通知权限并监听 onMessage 事件
const messaging = firebase.messaging();
messaging
  .requestPermission()
  .then(() => {
    console.log("Permission granted!");
  })
  .catch(() => {
    console.log("Permission denied!");
  });

messaging.onMessage(payload => {
  console.log("onMessage: ", payload);
});
Run Code Online (Sandbox Code Playgroud)
  1. 在公共目录中创建服务工作者文件 firebase-messaging-sw.js
importScripts("https://www.gstatic.com/firebasejs/4.8.1/firebase-app.js");
importScripts("https://www.gstatic.com/firebasejs/4.8.1/firebase-messaging.js");

var config = {
  messagingSenderId: <messageID hidden>
};
firebase.initializeApp(config);

const messaging = firebase.messaging();

Run Code Online (Sandbox Code Playgroud)
  1. 我从另一篇 Stackoverflow 帖子中读到,在 create-react-app 帖子中,这也有必要包含在 index.js 中
if ("serviceWorker" in navigator) {
  navigator.serviceWorker
    .register("../firebase-messaging-sw.js")
    .then(function(registration) {
      console.log("Registration …
Run Code Online (Sandbox Code Playgroud)

firebase reactjs firebase-cloud-messaging create-react-app

6
推荐指数
2
解决办法
9950
查看次数