Почему токен FCM не получен в веб-приложении - PullRequest
0 голосов
/ 18 сентября 2018

Я занимаюсь разработкой веб-приложения Reactjs и встроенной базы для push-уведомлений.Создана учетная запись firebase для проекта и скопированы веб-конфигурации.Он работает до Request permission .но когда allow запрос на разрешение, токен не получен.

Home.js

 import firebase from 'firebase';
    var config = {
        apiKey: "XXXXXXXX",
        authDomain: "XXXXXX.firebaseapp.com",
        databaseURL: "https://XXXXXX.firebaseio.com",
        projectId: "XXXXXXX",
        storageBucket: "XXXXX.appspot.com",
        messagingSenderId: "XXXXX"
    };
    firebase.initializeApp(config);
    const messaging = firebase.messaging(); 

    messaging.requestPermission()
        .then(() => {
            console.log("Have Permission");
            return messaging.getToken();
        })
        .then(token => {
            console.log("FCM Token:", token);
           // localStorage.setItem("fcmtoken",token);
        })
        .catch(error => {
            if (error.code === "messaging/permission-blocked") {
                console.log("Please Unblock Notification Request Manually");
            } else {
                console.log("Error Occurred", error);
            }        
        });

firebase-messaging-sw.js

importScripts("https://www.gstatic.com/firebasejs/4.12.0/firebase-app.js");
importScripts("https://www.gstatic.com/firebasejs/4.12.0/firebase-messaging.js");
  var config = {
        apiKey: "XXXXXXXX",
        authDomain: "XXXXXX.firebaseapp.com",
        databaseURL: "https://XXXXXX.firebaseio.com",
        projectId: "XXXXXXX",
        storageBucket: "XXXXX.appspot.com",
        messagingSenderId: "XXXXX"
    };
firebase.initializeApp(config);
const messaging = firebase.messaging();
messaging.setBackgroundMessageHandler(payload => {
   const title = payload.notification.title;
   console.log('payload', payload.notification.icon);
   const options = {
      body: payload.notification.body,
      icon: payload.notification.icon
   }
   return self.registration.showNotification(title, options);
});
...