Google’s FCM (Firebase Cloud Messaging) implements Push messaging used on Android devices to deliver asynchronous messages from a server to a device. FCM is not limited to Android, notably also supporting iOS.
FCM was previously known as GCM (Google Cloud Messaging) before the acquisition of Firebase by Google in 2014. For backward compatibility, you will see “gcm” used in message payloads to describe an Android push message. FCM and GCM are identical functionality, and though many new features have been added since 2014 the basic ability to send an asynchronous message remains unchanged.
Since the FCM implementation is outside of PubNub’s control, it is worth noting some restrictions that Android has in place to receive messages:
Android FCM is only available on GMS devices, i.e. not those running the Open Source version of Android.
FCM requires a developer API key from Google
FCM ‘topics’ are not used by PubNub
Android implements multiple techniques for device power management, and FCM messages not set as ‘high priority’ might be ignored or reception delayed to save power. When sending FCM messages through PubNub, this will be taken care of automatically.
FCM implements multiple ‘message types’. Currently, PubNub only supports the ‘notification message’.
Sending a message from a client device is done using the PubNub API. PubNub then takes responsibility for delivering that message to the target device(s) through a Firebase Cloud message (if registered). This should not be confused with the FCM ‘topic’ feature, which PubNub does not use.
Both PubNub and FCM are highly scalable, and when used together, they can enhance your user’s mobile experience.