Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在firebase中发送web推送通知会获得成功,但不会在客户端接收它们_Javascript_Reactjs_Firebase_Firebase Cloud Messaging_Service Worker - Fatal编程技术网

Javascript 在firebase中发送web推送通知会获得成功,但不会在客户端接收它们

Javascript 在firebase中发送web推送通知会获得成功,但不会在客户端接收它们,javascript,reactjs,firebase,firebase-cloud-messaging,service-worker,Javascript,Reactjs,Firebase,Firebase Cloud Messaging,Service Worker,我正在使用react,并且我一直在遵循关于如何启用web推送通知的文档,我已经创建了firebase messaging sw.js,并使用getToken()方法在客户机中获取令牌。还将serviceWorker注册到index.js文件中 碰巧它曾经工作过,但有时不工作,而且服务人员在启动时显示出一些错误,有时显示一切都很顺利,所以我想知道我遗漏了什么,或者为了最终启用推送通知,我还需要做些什么 我用3种方式测试em:在firebase控制台上,使用https://fcm.googleapi

我正在使用react,并且我一直在遵循关于如何启用web推送通知的文档,我已经创建了
firebase messaging sw.js
,并使用
getToken()
方法在客户机中获取令牌。还将serviceWorker注册到
index.js
文件中

碰巧它曾经工作过,但有时不工作,而且服务人员在启动时显示出一些错误,有时显示一切都很顺利,所以我想知道我遗漏了什么,或者为了最终启用推送通知,我还需要做些什么

我用3种方式测试em:在firebase控制台上,使用
https://fcm.googleapis.com/fcm/send
api和node.js上的
firebase admin
SDK

我的
firebase messaging sw.js
如下所示:

importScripts("https://www.gstatic.com/firebasejs/7.8.0/firebase-app.js");
importScripts("https://www.gstatic.com/firebasejs/7.8.0/firebase-messaging.js");

firebase.initializeApp({
  apiKey: "...",
  authDomain: "...",
  databaseURL: "...",
  projectId: "...",
  storageBucket: "...",
  messagingSenderId: "...",
  appId: "...",
  measurementId: "...",
});

const messaging = firebase.messaging();

messaging.usePublicVapidKey(
  "...KEY..."
);

使用SDK的代码如下所示

  // Full payload to be send
  body = {
    registration_ids: fcm_tokens, //Array of tokens
    priority: "high",
    notification: {
      title: data_activity_log.type.title,
      body: data_activity_log.type.description,
    },
  };
 
  // SDK function to send to multiple receipts
  admin
    .messaging()
    .sendMulticast(body)
    .then((response) => {
      console.log("multicast response", response);
    })
    .catch((error) => {
      console.error("multicast error", error);
    });
在回答中,我总是得到这样的回答:

  "multicast_id": ......,
  "success": 1,
  "failure": 0,
客户端的代码似乎有问题,但我就是不明白,没有显示错误,也没有任何建议或我做错了什么,请帮助

我已经在这上面呆了5天了:((