We’ve removed GCM, integrated Cloud Messaging with Firebase, and introduced many improvements. Here is an FAQ to help you understand how these updates may impact you. If you have a question that's not here, use the Send Feedback link at top right to let Google know.
Why is GCM being deprecated?
Google is investing in Firebase, making it our unified mobile platform. Since it was added to Firebase at Google I/O in 2016, FCM has been the recommended replacement for GCM.
The FCM SDK:
- Simplifies client development. You no longer have to write your own registration or subscription retry logic.
- Enables a new serverless notifications solution with a web console, the Firebase Notifications console. With the Notifications console, anyone can send notifications to target specific audiences based on Firebase Analytics insights. The console has deep integration with Google Analytics, Firebase predictions, and Firebase A/B testing.
- Includes ongoing feature enhancements/updates such as the HTTP v1 API.
- Provides better delivery reporting and more reliable delivery
I use a product that wraps GCM (such as UrbanAirship). How will GCM deprecation affect me?
GCM tokens will continue to work on client devices. However, you should reach out to your provider for more details about what this means for you.
How long do I have to migrate to FCM?
Most GCM services were deactivated in May 2019, so you should plan to migrate your services as soon as possible. After May 2019, support is no longer available for apps using GCM.
Note that client SDKs and GCM tokens will continue to work. However, the GCM Android client SDK will stop working if your app targets android versions later than Q.
How is FCM server implementation different from GCM server implementation?
FCM supports HTTP and XMPP protocols that are virtually identical to the GCM server protocols, so you don't need to update your sending logic for the migration. You'll only need to update the server endpoint as described in the migration guide.
You may want to evaluate the FCM HTTP v1 API, which offers an improved security model and new capabilities for customizing messages across platforms. Note that the FCM equivalent of the GCM HTTP protocol is labeled "legacy" only to distinguish it clearly from the HTTP v1 API. Both APIs are fully supported and Google has no near-term plan to deprecate them.
Can I roll out the migration via a flag or experiment on my client apps?
No, this does not work.
Will my existing GCM tokens and token handling still work?
Your GCM and FCM registration tokens are mutually interchangeable; you can send to existing GCM tokens through the FCM HTTP server APIs. For GCM and FCM token handling, remember:
- If you store and send to specific tokens, be sure to implement the token refresh method to ensure your tokens are always up to date
- iOS devs should avoid calling
.getToken(authorizedEntity,scope)
unless there is a need to enable multiple senders. UseFirebaseInstanceId.getInstance().getToken()
instead.
Do I need to resubscribe client app instances to topics?
Your existing GCM topic subscriptions will automatically send to the new FCM token. There's no need to re-subscribe.
What happened to my Play Console stats?
As of 5/24/2018, Google no longer supports GCM statistics in the Play Console. For developers who have upgraded to FCM (see the migration guide), the FCM dashboard provides similar statistics.
What data will Firebase collect and use? I'm concerned about privacy.
Please see Privacy and Security in Firebase and the Firebase terms. Some features of FCM can be turned off by disabling Google Analytics for Firebase in your app.
How will this affect Web APIs (Webpush protocol and chrome.gcm API)?
- For Chrome extensions, keep an eye on chrome.gcm API deprecation plans.
- For Webpush protocol, start using Voluntary Application Identification when subscribing to PushManager.
I don't want to use other Firebase products (such as Analytics).
Google Analytics for Firebase is enabled by default to provide the full range of FCM features. However, it can be disabled. The FCM SDK's only hard dependency is Google Play Services (which was also a dependency in GCM).