I was wondering if there is a comprehensive list that privides details of the various Firebase FCM usage limits.

I knew of the Data message payload limit of 4KB maximum. and then recently I got some issue with my app and then figured it was due to another limit - "maximum of 4 different collapse keys per device".

I also remember in one of the recent talks Google mentioned they have removed certain limits that they had previously like number of topics etc..

I am trying to get details of what are all the various limits that Google enforces on the FCM usage.


Here the answer given by Firebase support:

Firebase Cloud Messaging is free of charge, no matter the number of users and message pushes, just like Google Cloud Messaging was. However, here are some of its product "limitation": There's a limit of 1000 registration tokens used when using registration_ids parameter per send. So if you want to send 5000 messages to different users, you'll need to send the message in 5 batches. There's a limit of 100 messages that can be stored without collapsing. You can read more details here. You may also encounter limitations such as sending too much messages per second. Aside from that, everything in FCM is free and unlimited.

We currently don't have an SLA for FCM since it's a free service. We could never guarantee the delivery of messages since we do not control the networks between our servers and the device. We also offer the same level of support for both our paid and free plans for this service. Kindly see our Pricing FAQ here, under "What kind of support will I receive?" for more information.


The FCM docs now contain information about throttling and scaling. Details include:

Maximum payload is documented on the same page, here, as well as the collapse key limit:

...the FCM server can simultaneously store four different collapsible messages per device, each with a different collapse key. If you exceed this number, FCM only keeps four collapse keys, with no guarantees about which ones are kept.

Common errors related to throttling include messaging/device-message-rate-exceeded or messaging/topics-message-rate-exceeded. More details about error messages can be found here.


So as per my comment, it pretty much the same with GCM. So you can just go ahead and refer to this post if you want. But instead of going to the GCM docs mentioned there, you should go ahead and check with the FCM - Lifetime of a Message.

Or are you referring to much more specific limitation like in the Realtime Database connections/GB storage limit (you can just go check their pricings.

Unless you're trying to find something much more complicated or different, I think you can find pretty much everything you initially need in the docs. Cheers!