Я пытаюсь настроить firebase в моем проекте angularJS для использования фонового уведомления и уведомления приложения.
Что я сделал:
- установка firebase с помощью
npm install --save firebase
- добавить файл manifest.json с идентификатором отправителя в корневой каталог
- поместить эти сценарии в
<head>
: <script src="node_modules/firebase/firebase-app.js"></script>
<script src="node_modules/firebase/firebase-messaging.js"></script>
Добавить этот скрипт сразу после открытия <body>
:
<script>
var config = {
apiKey: "AIzaSyDAVuWKUL-aPoGasdEi-EMR7uFN1gtgk0s",
authDomain: "testproject-d71.firebaseapp.com",
databaseURL: "https://testproject-12d71.firebaseio.com",
projectId: "testproject-12d71",
storageBucket: "",
messagingSenderId: "123128116401"
};
firebase.initializeApp(config);
</script>
Добавить этот скрипт в конце <body>
<script src="js/configFcm.js"></script>
, что:
const messaging = firebase.messaging();
messaging.setBackgroundMessageHandler(function(payload) {
console.log('[firebase-messaging-sw.js] Received background message ', payload);
// Customize notification here
const notificationTitle = 'Title';
const notificationOptions = {
body: 'body.',
icon: '/firebase-logo.png'
};
return self.registration.showNotification(notificationTitle,
notificationOptions);
});
Это все, что я сделал, я не настроил в уведомлении приложенияпока только фоновые.Я получил сообщение об ошибке в консоли:
Необработанный код: «Messaging / Only-Available-In-SW»
Сообщение: «Messaging: этот метод доступен в контексте работника службы (messaging / only-available-in-sw). "
stack:" FirebaseError: Messaging: этот метод доступен в контексте рабочего сервиса. (messaging / only-available-in-sw)
Что такое сервисный работник? Это только на стороне клиента? Я выполняю эти сценарии из index.html, поэтому я в замешательстве.