Is GCM (now FCM) free for any limit?

All we need is an easy explanation of the problem, so here it is.

I would like to know if Firebase Cloud Messaging is free or not for unlimited users?

How to solve :

I know you bored from this bug, So we are here to help you! Take a deep breath and look at the explanation of your problem. We have many solutions to this problem, But we recommend you to use the first method because it is tested & true method that will 100% work for you.

Method 1

In addition to the answer from AL.
From the Pricing page Faqs:

Which products are paid? Which are free?

Firebase’s paid infrastructure products are the Realtime Database,
Firebase Storage, Hosting, and Test Lab. We offer a free tier for all
of these products except Test Lab.

Firebase also has many free products: Analytics, App Indexing,
Authentication, Dynamic Links, Cloud Messaging, Notifications,
Invites, Crash Reporting, &, Remote Config. You can use an unlimited
amount of these in all plans, including our free Spark Plan.

So, it’s free. The limit is not mentioned anywhere in the docs, however there’s a limit on the Firebase realtime database, as mentioned in the FAQs:

Firebase imposes hard limits on the number of connections to your app’s database at the same time. These limits are in place to protect both Firebase and our users from abuse.

The free plan limit is 100, and cannot be raised. The Flame and Blaze
Plans have an initial limit of 10,000 simultaneous database
connections. This is to prevent abuse and can be raised by contacting
Firebase support with 24 hours notice.

This limit isn’t the same as the total number of users of your app,
because your users don’t all connect at once. We encourage you to
monitor your peak simultaneous database connections and upgrade if
needed.

We’re working hard to remove the initial 10,000 simultaneous
connection cap on the Flame and Blaze plans.

So if you are using the Firebase Database to save your User’s data and want to send a lot of Push Notifications to your user’s devices using the FCM registration token stored in the Firebase Database, you might hit the limit in the free Spark plan, however it’s really tough to hit the 10k limit.

Method 2

From the Firebase Cloud Messaging Docs:

Firebase Cloud Messaging (FCM) is a cross-platform messaging solution that lets you reliably deliver messages at no cost.

Method 3

You can refer to the official Firebase Pricings page. From there you will be able to see the types of projects that are available: SPARK, FLAME, BLAZE, to which all of them have FCM (along with Analytics, App Indexing, Authentication, Dynamic Links, Invites, Notifications, Crash Reporting & Remote Config) included for free.

enter image description here

Method 4

Firebase Cloud Messaging (FCM) Connection Server (CCS) sits between the device and the app server. The following limits apply

  1. From the documentation here, it seems FCM does impose a limit of 1000 connections in parallel.

For each sender ID, FCM allows 1000 connections in parallel.

Sender Id is a unique numerical value created when you create your Firebase project, available in the Cloud Messaging tab of the Firebase console Settings pane. The sender ID is used to identify each app server that can send messages to the client app.

Note: Please correct me if this limit is not about the max connections from an app server to CCS


  1. Secondly, You should also read about Flow Control if you are using the XMPP connection server protocol (which has to be used if using device-to-cloud messaging). There should not be more than 100 unacknowledged messages towards CCS at any single point of time.

If the pending message count reaches 100, the app server should stop sending new messages and wait for CCS to acknowledge some of the existing pending messages

Note: Use and implement method 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply