Is GCM (now FCM) free for any limit?

AndroidFirebaseGoogle Cloud-PlatformGoogle Cloud-MessagingFirebase Cloud-Messaging

Android Problem Overview


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

Android Solutions


Solution 1 - Android

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.

Solution 2 - Android

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.

Solution 3 - Android

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

Solution 4 - Android

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

Recommended Google Cloud-Messaging Solutions

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionHarikrishnan CVView Question on Stackoverflow
Solution 1 - AndroidnoobView Answer on Stackoverflow
Solution 2 - AndroidVibgyView Answer on Stackoverflow
Solution 3 - AndroidAL.View Answer on Stackoverflow
Solution 4 - AndroidnightlytrailsView Answer on Stackoverflow