Я впервые делаю веб-уведомление fcm и получаю сообщение как

{    from: "205864560478",    collapse_key: "do_not_collapse"   }

Мой код

                messaging.onMessage(function(payload) {
                  console.log("Message received. ", payload);
                  // ...
                });

И мой firebase-messaging-sw.js

      const messaging = firebase.messaging();


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

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

Пожалуйста помоги . Я не знаю, почему я получаю эту ошибку, у меня отлично работает для ios и Android. мой веб-проект находится на локальном хосте и не имеет https

1
Paul Cheriyan 9 Ноя 2017 в 16:15

1 ответ

Лучший ответ

{ from: "205864560478", collapse_key: "do_not_collapse" } - это ожидаемая полезная нагрузка, и это не ошибка. Также для разработки localhost освобожден от условия https.

В FCM, если пользователь в данный момент просматривает вашу веб-страницу и получает push-уведомление, оно не будет отображаться как push-уведомление (поведение по умолчанию).

Поведение сообщений различается в зависимости от того, находится ли страница на переднем плане (имеет фокус) или в фоновом режиме, скрыта за другими вкладками или полностью закрыта.

Когда ваше приложение находится на переднем плане (пользователь в настоящее время просматривает вашу веб-страницу), вы можете получать данные и полезные данные уведомлений прямо на странице.

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

Если вы по-прежнему хотите отображать уведомление, когда пользователь в данный момент просматривает вашу веб-страницу, вы можете добавить логику push-кода на messaging.onMessage

Примере

messaging.onMessage(function (payload) {
    console.log('Message received. ', payload);
    var options = {
        body: 'Background Message body.', // payload.body
        icon: '/firebase-logo.png' .      // payload.icon
    };
    var n = new Notification('Notification says',options);
    setTimeout(n.close.bind(n), 5000);
});
4
Nimit Bhargava 16 Апр 2018 в 07:58