Paul Cheriyan
Paul Cheriyan

Reputation: 658

i have getting "do_not_collapse" as payload in FCM WEB notification

i am doing fcm web notification for the first time andgeting an message as

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

my code is

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

and my 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);
    });     

please help . i dont know why i get this error i have perfectly working for ios and Android. my web project is in localhost and do not have https

Upvotes: 1

Views: 902

Answers (1)

Nimit Bhargava
Nimit Bhargava

Reputation: 458

{ from: "205864560478", collapse_key: "do_not_collapse" } is the expected payload and it is not an error. Also, for development, localhost is exempted from the https condition.

In FCM, if the user is currently viewing your web page and receives a push notification then it will not be shown as push notification (default behavior).

The behavior of messages differs depending on whether the page is in the foreground (has focus), or in the background, hidden behind other tabs, or completely closed.

When your app is in the foreground (the user is currently viewing your web page), you can receive data and notification payloads directly in the page.

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

If you still want to show a notification when user is currently viewing your web page then you can add push code logic at messaging.onMessage

Example

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);
});

Upvotes: 4

Related Questions