# #firebase #firebase-cloud-messaging #web-push
Вопрос:
Я использую Firebase для веб-push-уведомлений. Мой работник firebase-messaging-sw.js
-это:
importScripts("https://www.gstatic.com/firebasejs/8.1.1/firebase-app.js");
importScripts("https://www.gstatic.com/firebasejs/8.1.1/firebase-messaging.js");
const FIREBASE_CONFIG = {
apiKey: "...",
authDomain: "...",
projectId: "...",
storageBucket: "...",
messagingSenderId: "...",
appId: "...",
measurementId: "..."
};
firebase.initializeApp(FIREBASE_CONFIG);
firebase.messaging().onBackgroundMessage((payload) => {
console.log(JSON.stringify(payload));
payload.notification.title = "Custom Title";
});
Я тестирую его в настольном браузере (Chrome, Linux).
Окно с нажатием содержит правильный текст и кнопку «Активировать», которая ведет к https://mysite/FCM_PLUGIN_ACTIVITY
.
приставка.журнал показывает следующее:
{
"from": "...",
"collapseKey": "do_not_collapse",
"notification": {
"title": "Hi",
"body": "Hello",
},
"data": {
"alert": "test",
// ...
},
"message": {
// ...
},
}
- Что такое
FCM_PLUGIN_ACTIVITY
? Я не вижу этой строки внутриpayload
. Я вижу , что в примерахpayload.notification
может содержатьсяclick_action=FCM_PLUGIN_ACTIVITY
, но мой не содержит. - Могу ли я изменить сообщение перед показом? Если изменения
payload.notification
вonBackgroundMessage()
нем не возымеют эффекта. - Я могу отправить сообщение через
self.registration.showNotification()
(https://firebase.google.com/docs/cloud-messaging/js/receive), но как отменить firebase-сообщение (показаны оба)?