https://developers.google.com/cloud-messaging/ > Firebase Cloud Messaging (FCM) is the new version of GCM. It inherits the > reliable and scalable GCM infrastructure, plus new features! See the FAQ to > learn more. If you are integrating messaging in a new app, start with FCM. GCM > users are strongly recommended to upgrade to FCM, in order to benefit from new > FCM features today and in the future. FAQ: https://firebase.google.com/support/faq/#gcm-fcm > Benefits of upgrading to FCM SDK include: > > * Simpler client development. You no longer have to write your own > registration or subscription retry logic. > * An out-of-the-box notification solution. You can use Firebase > Notifications, a serverless notifications solution with a web > console that lets anyone send notifications to target specific > audiences based on Firebase Analytics insights.
Getting the registration and subscription for free from the new SDK is interesting. However we definitely do not want the Analytics part; I wonder if you can only get all or nothing.
There's a backend piece to this too -- that is, we need to co-ordinate with the Push Service itself to deliver via FCM. (If we elect to use FCM -- I can't evaluate the value here right now.)
The migration guide says: "Updating these endpoints is not strictly required, as Google will continue to support the existing GCM endpoints.". So maybe we could switch to FCM on the client before taking any action on the backend. But this of course needs further evaluation.  https://developers.google.com/cloud-messaging/android/android-migrate-fcm
Looks like the server backend URL is fairly cosmetic. http.googleapis.com/gcm/ => fcm.googleapis.com/fcm/ We already encode the router_type into the inbound registration URL. It's also probably a good idea to segregate fcm from gcm in case they introduce more changes later. Creating issue https://github.com/mozilla-services/autopush/issues/517