How it works
An app registers with FCM through the Firebase SDK and receives a registration token. Your server sends messages to the FCM HTTP v1 API, authenticated with a short-lived OAuth token from a service account, addressed to one token, a topic that devices subscribe to, or a condition across topics. On Android, FCM delivers through Google Play services; on iOS it forwards to APNs using an APNs key you upload; on the web it uses the browser's web push.
Messages come in two kinds: notification messages, which the system shows automatically when the app is in the background, and data messages, which your own code handles. Payloads are limited to 4 KB. The legacy API, which used a fixed server key, was switched off in 2024, so older tutorials need updating. Battery savers on some Android phones can delay delivery to apps that are not in use.
Firebase Cloud Messaging (FCM) pros and cons
Pros
- Free, with no charge per message
- One API for Android, iOS and web
- Topics and conditions make sending to groups simple
Cons
- Delivery timing is not guaranteed, especially with aggressive battery savers
- iOS still needs an Apple developer account and an APNs key
- Ties your push setup to a Google project
When to use Firebase Cloud Messaging (FCM)
Pick it when
- Almost any Android app that needs notifications
- One backend that notifies Android, iOS and web users
Skip it when
- An iOS-only app that can talk to APNs directly
Firebase Cloud Messaging (FCM) pricing
Free
Free, with no charge per message. Other Firebase or Google Cloud services used alongside it are billed separately.
Firebase Cloud Messaging (FCM) pricing page (opens in a new tab)Approximate, checked September 2026.What the other tools cost
Related terms
More in Email and notifications
Push