Firebase установить обработчик фоновых сообщений - PullRequest
0 голосов
/ 08 июня 2018

Я пытался настроить уведомление в интерфейсе, т. Е. Если поле не установлено, отправьте уведомление, я пытаюсь добавить его.

importScripts('https://www.gstatic.com/firebasejs/5.0.4/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/5.0.4/firebase-messaging.js');

var config = {
    apiKey: "x",
    authDomain: "y",
    databaseURL: "z",
    projectId: "a",
    storageBucket: "b",
    messagingSenderId: "1"
};

firebase.initializeApp(config);

const messaging = firebase.messaging();
console.log('came here');

console.log(messaging.bgMessageHandler);

console.log(messaging.setBackgroundMessageHandler,'dsafdsadasfd')




messaging.setBackgroundMessageHandler(function(payload) {
  console.log('[firebase-messaging-sw.js] Received background message ', payload);
  // Customize notification here
  var notificationTitle = 'Background Message Title';
  var notificationOptions = {
    body: 'Background Message body.',
    icon: '/firebase-logo.png'
  };

  console.log(notificationOptions)
  return self.registration.showNotification(notificationTitle,
    notificationOptions);
});

console.log(messaging.bgMessageHandler);

при выполнении кода выше, яне получается консоль [firebase-messaging-sw.js] Received background message ', payload, хотя я получаю уведомление.

Почему setBackgroundMessageHandler не работает?

1 Ответ

0 голосов
/ 08 июня 2018

Это похоже на проблему в запросе json, который вы сделали для отправки сообщения, когда приложение работает в фоновом режиме.

Примечание. Если вы установите поля уведомлений в запросе отправки HTTP или XMPP, тозначения имеют приоритет над любыми значениями, указанными в сервисном работнике.

https://firebase.google.com/docs/cloud-messaging/js/topic-messaging

Итак, следующий формат не вызовет фоновый обработчик:

{
  to: "e-DLMv........._DiL",
  notification: {
    body: "Backgound-Message"
  }
}

Отправить сообщение с уведомлением внутри данных (это будет работать):

{
  to: "e-DLMv........._DiL",
  data: {
    notification: {
      body: "Backgound-Message"
    }
  }
}
...