Я использовал FCM в соответствии с этим https://firebase.google.com/docs/cloud-messaging/js/client
, и у меня появляется ошибка ниже:
FirebaseError {code: "messaging/failed-serviceworker-registration", message: "Messaging: We are unable to register the default s…ed (messaging/failed-serviceworker-registration).", browserErrorMessage: "Failed to register a ServiceWorker: ServiceWorker script evaluation failed", stack: "FirebaseError: Messaging: We are unable to registe…tp://localhost:3000/static/js/0.chunk.js:57713:26"}
browserErrorMessage: "Failed to register a ServiceWorker: ServiceWorker script evaluation failed"
code: "messaging/failed-serviceworker-registration"
message: "Messaging: We are unable to register the default service worker. Failed to register a ServiceWorker: ServiceWorker script evaluation failed (messaging/failed-serviceworker-registration)."
stack: "FirebaseError: Messaging: We are unable to register the default service worker. Failed to register a ServiceWorker: ServiceWorker script evaluation failed (messaging/failed-serviceworker-registration).↵ at http://localhost:3000/static/js/0.chunk.js:57713:26"
__proto__: Error
Что я делаю:
- Создание приложения реакции при создании-react-app pushnotification
- Загруженная firebase с использованием sudo npm install - сохранить firebase в моем проекте
создал файл firebase.js в папке src приложения реагирования с содержанием ниже
import firebase from 'firebase';
var config = {
apiKey: "MY_KEY",
authDomain: "MY_Domain",
databaseURL: "MY_DBurl",
projectId: "My_ProjectID",
storageBucket: "My_StorageBucket",
messagingSenderId: "My_Msg_id"
};
firebase.initializeApp(config);
const messaging = firebase.messaging();
messaging.requestPermission().then(function(){
console.log("Have Permission");
}).catch(function(error){
console.log(error);
})
, и когда я обновляю свое веб-приложение, оно запрашивает разрешение, как показано ниже:
Пока все работает, теперь я обновляю свой файл firebase.js, как показано ниже, для отправки push-уведомления:
import firebase from 'firebase';
var config = {
apiKey: "MY_KEY",
authDomain: "MY_Domain",
databaseURL: "MY_DBurl",
projectId: "My_ProjectID",
storageBucket: "My_StorageBucket",
messagingSenderId: "My_Msg_id"
};
firebase.initializeApp(config);
const messaging = firebase.messaging();
messaging.requestPermission().then(function(){
console.log("Have Permission");
return messaging.getToken();
}).then(function(token){
console.log(token)
}).catch(function(error){
console.log(error);
})
messaging.onMessage(function(payload){
console.log(payload);
})
также у меня есть файл firebase-messaging-sw.js с содержанием ниже:
import firebase from 'firebase';
var config = {
apiKey: "MY_KEY",
authDomain: "MY_Domain",
databaseURL: "MY_DBurl",
projectId: "My_ProjectID",
storageBucket: "My_StorageBucket",
messagingSenderId: "My_Msg_id"
};
firebase.initializeApp(config);
const messaging = firebase.messaging();
В моей общей папке и теперь, когда я обновляю страницу, я получаю сообщение об ошибке выше: