Firebase send push notification twice
For me it was a 3th party sdk that was using GCM while our app was using FCM. Registering with both services will give you two notifications.
(Also I was calling super.onMessageReceived(remoteMessage)
in my FirebaseMessagingService causing a third notification to appear :p
It looks like you are using com.google.android.gms:play-services:9.0.0
(which includes play-services-gcm) and com.google.firebase:firebase-messaging:9.0.0
FCM from firebase-massaging automatically registers an Instance ID token (device ID) so if you have logic that registers for a token in your app it is likely that you are registering twice. This could account for you receiving multiple notifications. More generally though you should not use FCM and GCM in the same app for exactly this reason. So if you are going to use FCM you should remove GCM from your app.
Also, using play-services includes all the play-services-x APIs like play-services-gcm and play-services-drive etc. So always use the split libraries like play-services-x instead of just play-services.