androidfirebasegoogle-cloud-functionscordova-plugin-fcm

cordova fcm push notifications using firebase functions issue


I am using firebase function and sending the notification like below

 let pushPayload = {
        notification: {
            title: 'Doodles Notification',
            body: "push testing",
            sound: 'default',
            badge: '1'
            }
    };

    //push tokens need to be of customer as well as all the admins in the system. fetch admin push tokens
    admin.messaging().sendToDevice(pushToken, pushPayload).then(
        (resp) => {
                        console.log("push notification sent using test method")
                        return
                }
    ).catch(
        (err) => {
                    console.log("Error sending push notification:" + JSON.stringify(err))
                    return
        }
    )

The client side ionic app has method like below:

  this.fcm.onNotification().subscribe(data => {
            console.log("push message is:" + JSON.stringify(data))
            alert(data.aps.alert.body)
          });

on ios this all works great. however on android, the console.log prints

{"wasTapped":false}

I am ok with the above expected property but where is the data? The firebase documentation is confusing around it and I am sort of lost what is the correct payload I need to use that works with both ios and android.


Solution

  • Your pushPayload also needs to have a data array to pass data. I believe you also need speech marks around your keys:

    "notification":{  
       "title":"Doodles Notification",
       "body":"push testing",
       "sound":"default",
       "badge":"1"
    },
    "data":{  
       "Key1":"Test",
       "Key2":"More data"
    }
    

    Documentation