Я отправляю push-уведомление FCM из бэкэнда Firebase в расширение Chrome.Я вижу, что он успешно отображается в моем Chrome Extension, когда он в фокусе.Я хочу, чтобы оно показывалось, даже если расширение не в фокусе, но я не могу заставить работника службы, который должен обработать уведомление, даже запустить.
Я следовал Google tutorial настроить мой клиент JavaScript Chrome Extension.Я уже пробовал это решение , чтобы не включать полезную нагрузку "уведомления" в мое сообщение, и это решение , чтобы зарегистрировать работника вручную (хотя учебник не говорит ни о чем), но безрезультатно.
Мой сервисный работник firebase-messaging-sw.js
выглядит так:
importScripts('https://www.gstatic.com/firebasejs/5.8.2/firebase.js');
var config = {
...
};
firebase.initializeApp(config);
const messaging = firebase.messaging();
messaging.setBackgroundMessageHandler(function(payload) {
console.log('[firebase-messaging-sw.js] Received background message ', payload.data);
var notificationTitle = 'Background Message Title';
var notificationOptions = {
body: 'Background Message body.',
icon: '/firebase-logo.png'
};
return self.registration.showNotification(notificationTitle,
notificationOptions);
});
Это POST-запрос, который я использую для отправки уведомлений (очевидно, с правильными значениями SERVER_KEY и USER_TOKEN):
POST /fcm/send HTTP/1.1
Host: fcm.googleapis.com
Content-Type: application/json
Authorization: key=<SERVER_KEY>
Cache-Control: no-cache
{
"data": {
"title": "Firebase",
"body": "Firebase is awesome",
"click_action": "http://localhost:5000/",
"icon": "http://localhost:5000/firebase-logo.png"
},
"to": "<USER_TOKEN>"
}
Как заставить работника службы получать push-уведомления и отображать их?
Заранее спасибо:)