Firebase on Android - I want to disable firebase notifications on Android client
Not sure why this happens to you (code snippet maybe?), but there is a heavy weight ultimate solution: define your own c2dm receiver in the manifest and set the priority high (>0) then stop the notification from processing.
GCM messages are processed as ordered broadcasts, so you can stop the processing chain by calling this method:
https://developer.android.com/reference/android/content/BroadcastReceiver.html#abortBroadcast()
If you don't do anything in your receiver then the next receiver will do the processing, which will be the Firebase receiver.
Please note: Firebase is sending push notification for Remote Config changes. So, if you use Remote Config then it is not advisable to suppress any data push.
I couldn't comment yet, but racs' comment helped me a lot.
Actually, Firebase docs recommend to use data push instead of notifications if you want to have complete control over how it is handled: firebase.google.com/docs/cloud-messaging/… - quote: "Use notifications when you want FCM to handle displaying a notification on your client app's behalf. Use data messages when you want your app to handle the display or process the messages on your Android client app..."
So basically, I changed the body for the push notification request from:
{
"data": {
"type" : "mytype"
},
"notification": {
"title": "My Title",
"body": "My Notification Message"
},
"to": "/topics/all"
}
To:
{
"data": {
"type" : "mytype",
"title": "My Title",
"body": "My Notification Message"
},
"to": "/topics/all"
}
Now my app calls onMessageReceived() everytime even in background, and I just changed the methods to use the obtained notification title and message in the push data.