why do I receive multiple FCM notifications on android 7

Viewed 3095

I am trying to integrate FCM notification in my project. I have Cloud Function backend, and app runs on android. Below is cloud code to send notification:

exports.notificationTest =  functions.database.ref(`/test/childA/childB/status`).onUpdate(event => {

    const status = event.data.val();
    console.info("Processing notificationTest cloud function")
    console.info(`status : ${status}`)
    const token = "EnterYourNotificationTokenHere"

    const randomNum = Math.floor(Math.random() * 100)
    var message = { 
        notification: { title : "My App", body : `Notification Test ${randomNum}`}
    }   
    console.info(`Sending message on notification token`)  
    return admin.messaging().sendToDevice(token, message)
    .then((response) => {
        console.info("Successfully sent notification")
    }).catch(function(error) {
        console.warn("Error sending notification " , error)
    })
})

On native Android app, I receive notification multiple times with interval of few mins. Here, I have seen notification like this:

Notification Test 30

then after 2,4,8,16,32 mins of previous notification time I again get below message

Notification Test 30

I don't think I need to paste log here, because code is definitely executed just once (as the random number in notification stays the same).

So, why is this happening and how to fix it?

Below is my environment:

Native Android App
Using Android 7
Latest Android Studio Stable
Android Gradle Plugin - 3.1.1
Gradle - 4.1
Firebase-Ui - 3.1.0
Play Services - 11.4.2

Please try to reproduce in environment mentioned above.

2 Answers

I just had this same issue occur with my Ionic Android app. The same notification repeated after 2, 4, and 8 minutes. This seems to be an issue on the client side because it even happens when sending a message directly from the Firebase console.

I tried several things to fix it and it seems like the only way I could get it to work as intended was to make a new Android project and new Firebase app.

Related