Jump to content

Firebase Cloud Messaging: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Fix cite date error, removed stub tag
Line 17: Line 17:
}}
}}


'''Firebase Cloud Messaging''' ('''FCM'''), formerly known as [[Google Cloud Messaging]] (GCM), is a cross-platform cloud solution for messages and [[Notification service|notifications]] for [[Android (operating system)|Android]], [[iOS]], and [[web application]]s, which currently can be used at no cost.<ref>{{Cite web|url=https://firebase.google.com/docs/cloud-messaging/|title=Firebase Cloud Messaging|website=Google Developers|language=en|access-date=July 20, 2016}}</ref> Firebase Cloud Messaging allows third-party application developers to send notifications or messages from servers hosted by GCM to users of the platform or [[End user|end users]].
'''Firebase Cloud Messaging''' ('''FCM'''), formerly known as [[Google Cloud Messaging]] (GCM), is a cross-platform cloud solution for messages and [[Notification service|notifications]] for [[Android (operating system)|Android]], [[iOS]], and [[web application]]s, which currently can be used at no cost.<ref>{{Cite web|url=https://firebase.google.com/docs/cloud-messaging/|title=Firebase Cloud Messaging|website=Google Developers|language=en|access-date=July 20, 2016}}</ref> Firebase Cloud Messaging allows third-party application developers to send notifications or messages from servers hosted by GCM to users of the platform or [[end user]]s.


The service is provided by [[Firebase]], a subsidiary of [[Google]]. On October 21, 2014, Firebase announced it had been acquired by Google for an undisclosed amount.<ref name="google">{{cite web|url=https://firebase.googleblog.com/2014/10/firebase-is-joining-google.html|title=Firebase is Joining Google!|publisher=Firebase, Inc|author=Tamplin, James|accessdate=October 21, 2014}}</ref> The official Google Cloud Messaging website points to Firebase Cloud Messaging (FCM) as the new version of GCM.<ref>{{cite web |title=Google Cloud Messaging - official website |accessdate=July 20, 2016 |url=https://developers.google.com/cloud-messaging/}}</ref> Firebase is a mobile platform which supports users in developing mobile and web applications. Firebase Cloud Messaging is one of many products which are part of the Firebase platform.
The service is provided by [[Firebase]], a subsidiary of [[Google]]. On October 21, 2014, Firebase announced it had been acquired by Google for an undisclosed amount.<ref name="google">{{cite web|url=https://firebase.googleblog.com/2014/10/firebase-is-joining-google.html|title=Firebase is Joining Google!|publisher=Firebase, Inc|author=Tamplin, James|accessdate=October 21, 2014}}</ref> The official Google Cloud Messaging website points to Firebase Cloud Messaging (FCM) as the new version of GCM.<ref>{{cite web |title=Google Cloud Messaging - official website |accessdate=July 20, 2016 |url=https://developers.google.com/cloud-messaging/}}</ref> Firebase is a mobile platform which supports users in developing mobile and web applications. Firebase Cloud Messaging is one of many products which are part of the Firebase platform.


==History==
==History==
Firebase Cloud Messaging (FCM) is part of the Firebase platform, which is a cloud service model that automates backend development or a Backend-as-a-service (BaaS). After the Firebase company was acquired by Google in 2014, some Firebase platform products or technologies were integrated with Google’s existing services. Google’s mobile notification service Google Cloud Messaging (GCM) was replaced by FCM in 2016. On April 10, 2018, GCM was removed by Google and on May 29, 2019, the GCM server and client API were deprecated. <ref name=":4">Kantamani, S. (2020). Firebase Cloud Messaging. Retrieved 7 September 2020, from https://medium.com/developermind/using-firebase-cloud-messaging-for-remote-notifications-in-ios-d35de1dc67b2</ref> FCM has become the replacement for GCM.
Firebase Cloud Messaging (FCM) is part of the Firebase platform, which is a cloud service model that automates backend development or a Backend-as-a-service (BaaS). After the Firebase company was acquired by Google in 2014, some Firebase platform products or technologies were integrated with Google’s existing services. Google’s mobile notification service Google Cloud Messaging (GCM) was replaced by FCM in 2016. On April 10, 2018, GCM was removed by Google and on May 29, 2019, the GCM server and client API were deprecated.<ref name=":4">Kantamani, S. (2020). Firebase Cloud Messaging. Retrieved 7 September 2020, from https://medium.com/developermind/using-firebase-cloud-messaging-for-remote-notifications-in-ios-d35de1dc67b2</ref> FCM has become the replacement for GCM.


Firebase Cloud Messaging is a cross-platform messaging solution on which the user can deliver messages without cost. FCM is compatible with various platforms including Android and iOS. <ref name=":5">Moroney, L. (2017). Firebase Cloud Messaging. In The Definitive Guide to Firebase (pp. 163-188). Apress, Berkeley, CA.</ref> Google launched support for web applications on October 17, 2016 including mobile web application. <ref name=":6">Novet, J. (2016). Google launches Firebase Cloud Messaging for the web. Retrieved 7 October 2020, from https://venturebeat.com/2016/10/17/google-launches-firebase-cloud-messaging-for-the-web/</ref> On FCM, third party application developers can send push notifications and messages via an application programming interface (API) to end users. <ref name=":7">Albertengo, G., Debele, F. G., Hassan, W., & Stramandino, D. (2020). On the performance of web services, google cloud messaging and firebase cloud messaging. Digital Communications and Networks, 6(1), 31-37.</ref> After users enable consent to receive push notifications, users are able to receive real time information or data for syncing.
Firebase Cloud Messaging is a cross-platform messaging solution on which the user can deliver messages without cost. FCM is compatible with various platforms including Android and iOS.<ref name=":5">Moroney, L. (2017). Firebase Cloud Messaging. In The Definitive Guide to Firebase (pp. 163-188). Apress, Berkeley, CA.</ref> Google launched support for web applications on October 17, 2016 including mobile web application.<ref name=":6">Novet, J. (2016). Google launches Firebase Cloud Messaging for the web. Retrieved 7 October 2020, from https://venturebeat.com/2016/10/17/google-launches-firebase-cloud-messaging-for-the-web/</ref> On FCM, third party application developers can send push notifications and messages via an application programming interface (API) to end users.<ref name=":7">Albertengo, G., Debele, F. G., Hassan, W., & Stramandino, D. (2020). On the performance of web services, google cloud messaging and firebase cloud messaging. Digital Communications and Networks, 6(1), 31-37.</ref> After users enable consent to receive push notifications, users are able to receive real time information or data for syncing.


==Development==
==Development==
FCM inherits the core infrastructure of GCM however simplifies the development of the client side. GCM and FCM offer encryption, push notification and messaging, native Android and iOS SDK support. Both require a third-party entity between the client application and the trusted environment which may create delays in the communication path between the mobile terminal and application server.<ref name=":7" /> FCM supports server protocols HTTP and XMPP which are identical to GCM protocols.
FCM inherits the core infrastructure of GCM however simplifies the development of the client side. GCM and FCM offer encryption, push notification and messaging, native Android and iOS SDK support. Both require a third-party entity between the client application and the trusted environment which may create delays in the communication path between the mobile terminal and application server.<ref name=":7" /> FCM supports server protocols HTTP and XMPP which are identical to GCM protocols.


Developers are not required to write individual registrations or subscripting retrying login in the client application. <ref name=":4" /> FCM and GCM handle messages through the same instructions however, instead of GCM connection servers, messages are passed through FCM servers. The FCM Software Development Kit (SDK) excludes writing individual registration or subscription retry logic for a shortened client development process. The FCM SDK provides a new notification solution allowing developers to use the serverless Firebase Notifications on a web console, based on Firebase Analytics insights. FCM enables unlimited upstream and downstream messages to be sent. <ref name=":5" />
Developers are not required to write individual registrations or subscripting retrying login in the client application.<ref name=":4" /> FCM and GCM handle messages through the same instructions however, instead of GCM connection servers, messages are passed through FCM servers. The FCM Software Development Kit (SDK) excludes writing individual registration or subscription retry logic for a shortened client development process. The FCM SDK provides a new notification solution allowing developers to use the serverless Firebase Notifications on a web console, based on Firebase Analytics insights. FCM enables unlimited upstream and downstream messages to be sent.<ref name=":5" />


== Key Capabilities ==
== Key Capabilities ==
Firebase Cloud Messaging has three main capabilities. The first capability is that FCM allows the user to receive notification messages or data messages which can be deciphered by the application code. The second capability is message targeting. Messages are able to be sent to the client application through different methods; from the FCM platform to individual devices, specified device groups or devices which are subscribed to particular topic domains. The third key capability is the connection channel from client applications to the server. FCM allows messages of various types to be sent from selected devices or client apps via the FCM channel. <ref>{{Cite web|title=Firebase Cloud Messaging|url=https://firebase.google.com/docs/cloud-messaging|access-date=2020-11-16|website=Firebase|language=en}}</ref>
Firebase Cloud Messaging has three main capabilities. The first capability is that FCM allows the user to receive notification messages or data messages which can be deciphered by the application code. The second capability is message targeting. Messages are able to be sent to the client application through different methods; from the FCM platform to individual devices, specified device groups or devices which are subscribed to particular topic domains. The third key capability is the connection channel from client applications to the server. FCM allows messages of various types to be sent from selected devices or client apps via the FCM channel.<ref>{{Cite web|title=Firebase Cloud Messaging|url=https://firebase.google.com/docs/cloud-messaging|access-date=2020-11-16|website=Firebase|language=en}}</ref>


==Technical Details==
==Technical Details==
Firebase Cloud Messaging sends notifications and messages to devices which have installed specific Firebase-enabled apps. Adding support for FCM to an application requires multiple steps: add support to the Android Studio project, obtain registration tokens and implement handlers to identify message notifications. <ref name=":8"> Yilmaz, Y. S., Aydin, B. I., & Demirbas, M. (2014, December). Google cloud messaging (GCM): An evaluation. In 2014 IEEE Global Communications Conference (pp. 2807-2812). IEEE. </ref> The message notifications can be sent via the Firebase console with a select user segmentation option.
Firebase Cloud Messaging sends notifications and messages to devices which have installed specific Firebase-enabled apps. Adding support for FCM to an application requires multiple steps: add support to the Android Studio project, obtain registration tokens and implement handlers to identify message notifications.<ref name=":8">Yilmaz, Y. S., Aydin, B. I., & Demirbas, M. (2014, December). Google cloud messaging (GCM): An evaluation. In 2014 IEEE Global Communications Conference (pp. 2807-2812). IEEE.</ref> The message notifications can be sent via the Firebase console with a select user segmentation option.


===FCM Architecture===
===FCM Architecture===
The FCM Architecture includes three components: FCM connection server, a Trusted environment with an application server based on HTTP or XMPP and cloud functionality, and a Client application. Sending and receiving messages require a secured environment or server to build, direct and send messages, and an iOS, Android or web client application to receive messages. <ref name=":9">Mokar, M. A., Fageeri, S. O., & Fattoh, S. E. (2019, September). Using Firebase Cloud Messaging to Control Mobile Applications. In 2019 International Conference on Computer, Control, Electrical, and Electronics Engineering (ICCCEEE) (pp. 1-5). IEEE</ref> Two types of messages developers can send with FCM are notification messages displayed on the device by FCM and data messages processed by the application. [[File:Firebase cloud messaging architecture.png|thumb|Firebase cloud messaging architecture]]
The FCM Architecture includes three components: FCM connection server, a Trusted environment with an application server based on HTTP or XMPP and cloud functionality, and a Client application. Sending and receiving messages require a secured environment or server to build, direct and send messages, and an iOS, Android or web client application to receive messages.<ref name=":9">Mokar, M. A., Fageeri, S. O., & Fattoh, S. E. (2019, September). Using Firebase Cloud Messaging to Control Mobile Applications. In 2019 International Conference on Computer, Control, Electrical, and Electronics Engineering (ICCCEEE) (pp. 1-5). IEEE</ref> Two types of messages developers can send with FCM are notification messages displayed on the device by FCM and data messages processed by the application. [[File:Firebase cloud messaging architecture.png|thumb|Firebase cloud messaging architecture]]


Mokar, M. A., Fageeri, S. O., & Fattoh, S. E. (2019, September). Using Firebase Cloud Messaging to Control Mobile Applications. In 2019 International Conference on Computer, Control, Electrical, and Electronics Engineering (ICCCEEE) (pp. 1-5). IEEEFCM can deliver target messages to applications via three methods: to a single device, to a device group or to devices which are subscribed to topics. Developers build and send targeted messages to a select group of users on the ‘Notification composer.’ <ref name=":8"/> Messages send with FCM are integrated with the Firebase Analytics functionality to track user conversion and engagement.
Mokar, M. A., Fageeri, S. O., & Fattoh, S. E. (2019, September). Using Firebase Cloud Messaging to Control Mobile Applications. In 2019 International Conference on Computer, Control, Electrical, and Electronics Engineering (ICCCEEE) (pp.&nbsp;1–5). IEEEFCM can deliver target messages to applications via three methods: to a single device, to a device group or to devices which are subscribed to topics. Developers build and send targeted messages to a select group of users on the ‘Notification composer.’ <ref name=":8"/> Messages send with FCM are integrated with the Firebase Analytics functionality to track user conversion and engagement.


===Implementation===
===Implementation===
The implementation process has two key components. First, a secure environment to send and receive messages is required for FCM or other application servers to facilitate message transaction. Second, a client application of possible types, iOS, Android or web (javaScript), which is also compatible with the selected platform service is needed.
The implementation process has two key components. First, a secure environment to send and receive messages is required for FCM or other application servers to facilitate message transaction. Second, a client application of possible types, iOS, Android or web (javaScript), which is also compatible with the selected platform service is needed.


The implementation path for FCM is initiated with the FCM SDK setup following the instructions prescribed for the decided platform. Following setup, the client application must be developed. On the client app, add message handling, topic subscription logic and other required features. During this step, test messages can also be sent from the Notifications composer. The application server is developed next to build the sending logic. The base server environment is created without code.<ref name=":4" />
The implementation path for FCM is initiated with the FCM SDK setup following the instructions prescribed for the decided platform. Following setup, the client application must be developed. On the client app, add message handling, topic subscription logic and other required features. During this step, test messages can also be sent from the Notifications composer. The application server is developed next to build the sending logic. The base server environment is created without code.<ref name=":4" />
Line 49: Line 49:
==Additional Features==
==Additional Features==
===Analytics===
===Analytics===
Firebase offers free and unrestricted analytics tools to assist the user gain insights into the 'ad click' & 'application usage' of end customers. In conjunction with other Firebase features, Firebase Analytics allows the user to explore and use on a range of functionalities such as click-through rates to app crashes. <ref name=":10"> Sharma, R. (2020). What is GCM and FCM? (Differences and Limitations). Retrieved 2 October 2020, from https://www.izooto.com/blog/everything-that-you-need-to-know-about-firebase-cloud-messaging-platform</ref>
Firebase offers free and unrestricted analytics tools to assist the user gain insights into the 'ad click' & 'application usage' of end customers. In conjunction with other Firebase features, Firebase Analytics allows the user to explore and use on a range of functionalities such as click-through rates to app crashes.<ref name=":10">Sharma, R. (2020). What is GCM and FCM? (Differences and Limitations). Retrieved 2 October 2020, from https://www.izooto.com/blog/everything-that-you-need-to-know-about-firebase-cloud-messaging-platform</ref>

===Firebase Remote Config===
===Firebase Remote Config===
It is a simple key-value store that lives in the cloud and enables the user to implement modifications which can be read by the application. The Firebase Remote Config also includes an audience builder, in addition to the basic feature, which helps the user create custom audiences and perform A / B testing. <ref name=":10" />
It is a simple key-value store that lives in the cloud and enables the user to implement modifications which can be read by the application. The Firebase Remote Config also includes an audience builder, in addition to the basic feature, which helps the user create custom audiences and perform A / B testing.<ref name=":10" />

===Cross-Platform Support===
===Cross-Platform Support===
APIs packaged into single SDKs for iOS, Android, JavaScript and C++ in conjunction with the cross-platform support provided by FCM allow the developer to expand across different platforms without infrastructure modification.<ref name=":10" />
APIs packaged into single SDKs for iOS, Android, JavaScript and C++ in conjunction with the cross-platform support provided by FCM allow the developer to expand across different platforms without infrastructure modification.<ref name=":10" />

===Web Push Support===
===Web Push Support===
Developers can implement the standard IETF Web Push APIs and being to target web browsers. On Chrome, developers can send messages to Chrome on Android or Chrome pages in Mac, Windows and Linux. Added features for web push support include Topic Messaging and the ability to send messages to Topic Combinations. <ref name=":10" />
Developers can implement the standard IETF Web Push APIs and being to target web browsers. On Chrome, developers can send messages to Chrome on Android or Chrome pages in Mac, Windows and Linux. Added features for web push support include Topic Messaging and the ability to send messages to Topic Combinations.<ref name=":10" />

===Topic Messaging===
===Topic Messaging===
Developers can send a single message to multiple devices. It is a method of notification to users with common interest topics such as sports events, artists, music genres. Developers need to publish a message to FCM, which is automatically delivered to devices subscribed to the select topic. Subscriber count on a single topic or multiple topics are not limited on the application. <ref name=":10" />
Developers can send a single message to multiple devices. It is a method of notification to users with common interest topics such as sports events, artists, music genres. Developers need to publish a message to FCM, which is automatically delivered to devices subscribed to the select topic. Subscriber count on a single topic or multiple topics are not limited on the application.<ref name=":10" />

===Topic Combination Messaging===
===Topic Combination Messaging===
If users are subscribed to different topics, to prevent publishing the same message across different topics and users from receiving duplicate messages, developers can use the updated API. Developers can set specific conditions for FCM to deliver the message only to users who meet the condition criteria. <ref name=":10" />
If users are subscribed to different topics, to prevent publishing the same message across different topics and users from receiving duplicate messages, developers can use the updated API. Developers can set specific conditions for FCM to deliver the message only to users who meet the condition criteria.<ref name=":10" />


== Key Concerns ==
== Key Concerns ==
Line 68: Line 73:
A security concern is the potential exploitation of server keys which are stored in the FCM’s [[Android application package]] (APK) files. If exploited, this allows the distribution of push notification messages to any and all users on the Firebase platform. GCM has previously reported security vulnerabilities where phishing and malicious advertisement activities have occurred.
A security concern is the potential exploitation of server keys which are stored in the FCM’s [[Android application package]] (APK) files. If exploited, this allows the distribution of push notification messages to any and all users on the Firebase platform. GCM has previously reported security vulnerabilities where phishing and malicious advertisement activities have occurred.


Protection against security threats involves multiple steps and can lead to additional implications. Deactivating the Cloud Messaging service will prevent immediate transactions. However, this could potentially stop other applications installed on the blocked device which rely on the FCM service.<ref>{{Cite journal|last=Esposito|first=Christian|last2=Palmieri|first2=Francesco|last3=Choo|first3=Kim-Kwang Raymond|date=2018-03|title=Cloud Message Queueing and Notification: Challenges and Opportunities|url=http://dx.doi.org/10.1109/mcc.2018.022171662|journal=IEEE Cloud Computing|volume=5|issue=2|pages=11–16|doi=10.1109/mcc.2018.022171662|issn=2325-6095}}</ref> A possible solution is to block a specific notification channel or unsubscribe from a topic. Other solutions involve setting up message traffic notification systems to detect malicious information being messaged through the FCM service platform. <ref>{{Cite journal|last=Li|first=Na|last2=Du|first2=Yanhui|last3=Chen|first3=Guangxuan|date=2013-12|title=Survey of Cloud Messaging Push Notification Service|url=http://dx.doi.org/10.1109/iscc-c.2013.132|journal=2013 International Conference on Information Science and Cloud Computing Companion|publisher=IEEE|doi=10.1109/iscc-c.2013.132|isbn=978-1-4799-5245-8}}</ref> To implement this solution additional steps are required. The user needs to identify at the start, the connection channel or topic potentially used by the malicious application.
Protection against security threats involves multiple steps and can lead to additional implications. Deactivating the Cloud Messaging service will prevent immediate transactions. However, this could potentially stop other applications installed on the blocked device which rely on the FCM service.<ref>{{Cite journal|last=Esposito|first=Christian|last2=Palmieri|first2=Francesco|last3=Choo|first3=Kim-Kwang Raymond|date=March 2018|title=Cloud Message Queueing and Notification: Challenges and Opportunities|url=http://dx.doi.org/10.1109/mcc.2018.022171662|journal=IEEE Cloud Computing|volume=5|issue=2|pages=11–16|doi=10.1109/mcc.2018.022171662|issn=2325-6095}}</ref> A possible solution is to block a specific notification channel or unsubscribe from a topic. Other solutions involve setting up message traffic notification systems to detect malicious information being messaged through the FCM service platform.<ref>{{Cite journal|last=Li|first=Na|last2=Du|first2=Yanhui|last3=Chen|first3=Guangxuan|date=December 2013|title=Survey of Cloud Messaging Push Notification Service|url=http://dx.doi.org/10.1109/iscc-c.2013.132|journal=2013 International Conference on Information Science and Cloud Computing Companion|publisher=IEEE|doi=10.1109/iscc-c.2013.132|isbn=978-1-4799-5245-8}}</ref> To implement this solution additional steps are required. The user needs to identify at the start, the connection channel or topic potentially used by the malicious application.


=== Privacy Concerns ===
=== Privacy Concerns ===
Line 81: Line 86:
* [https://developers.google.com/cloud-messaging/faq GCM and FCM Frequently Asked Questions]
* [https://developers.google.com/cloud-messaging/faq GCM and FCM Frequently Asked Questions]
* [https://www.pushengage.com/blog/why-use-gcm-with-push-notifications/ How to Configure a Firebase/Google Cloud Messaging Key & Why You Should Use FCM Key ]
* [https://www.pushengage.com/blog/why-use-gcm-with-push-notifications/ How to Configure a Firebase/Google Cloud Messaging Key & Why You Should Use FCM Key ]



[[Category:Mobile telecommunication services]]
[[Category:Mobile telecommunication services]]
[[Category:Google Cloud]]
[[Category:Google Cloud]]
{{soft-stub}}
{{google-stub}}

Revision as of 16:04, 16 November 2020

Firebase Cloud Messaging
Developer(s)Firebase
Programming language(s)-
Application(s)Notification service
StatusActive
LicenseProprietary
Websitehttps://firebase.google.com/products/cloud-messaging/

Firebase Cloud Messaging (FCM), formerly known as Google Cloud Messaging (GCM), is a cross-platform cloud solution for messages and notifications for Android, iOS, and web applications, which currently can be used at no cost.[1] Firebase Cloud Messaging allows third-party application developers to send notifications or messages from servers hosted by GCM to users of the platform or end users.

The service is provided by Firebase, a subsidiary of Google. On October 21, 2014, Firebase announced it had been acquired by Google for an undisclosed amount.[2] The official Google Cloud Messaging website points to Firebase Cloud Messaging (FCM) as the new version of GCM.[3] Firebase is a mobile platform which supports users in developing mobile and web applications. Firebase Cloud Messaging is one of many products which are part of the Firebase platform.

History

Firebase Cloud Messaging (FCM) is part of the Firebase platform, which is a cloud service model that automates backend development or a Backend-as-a-service (BaaS). After the Firebase company was acquired by Google in 2014, some Firebase platform products or technologies were integrated with Google’s existing services. Google’s mobile notification service Google Cloud Messaging (GCM) was replaced by FCM in 2016. On April 10, 2018, GCM was removed by Google and on May 29, 2019, the GCM server and client API were deprecated.[4] FCM has become the replacement for GCM.

Firebase Cloud Messaging is a cross-platform messaging solution on which the user can deliver messages without cost. FCM is compatible with various platforms including Android and iOS.[5] Google launched support for web applications on October 17, 2016 including mobile web application.[6] On FCM, third party application developers can send push notifications and messages via an application programming interface (API) to end users.[7] After users enable consent to receive push notifications, users are able to receive real time information or data for syncing.

Development

FCM inherits the core infrastructure of GCM however simplifies the development of the client side. GCM and FCM offer encryption, push notification and messaging, native Android and iOS SDK support. Both require a third-party entity between the client application and the trusted environment which may create delays in the communication path between the mobile terminal and application server.[7] FCM supports server protocols HTTP and XMPP which are identical to GCM protocols.

Developers are not required to write individual registrations or subscripting retrying login in the client application.[4] FCM and GCM handle messages through the same instructions however, instead of GCM connection servers, messages are passed through FCM servers. The FCM Software Development Kit (SDK) excludes writing individual registration or subscription retry logic for a shortened client development process. The FCM SDK provides a new notification solution allowing developers to use the serverless Firebase Notifications on a web console, based on Firebase Analytics insights. FCM enables unlimited upstream and downstream messages to be sent.[5]

Key Capabilities

Firebase Cloud Messaging has three main capabilities. The first capability is that FCM allows the user to receive notification messages or data messages which can be deciphered by the application code. The second capability is message targeting. Messages are able to be sent to the client application through different methods; from the FCM platform to individual devices, specified device groups or devices which are subscribed to particular topic domains. The third key capability is the connection channel from client applications to the server. FCM allows messages of various types to be sent from selected devices or client apps via the FCM channel.[8]

Technical Details

Firebase Cloud Messaging sends notifications and messages to devices which have installed specific Firebase-enabled apps. Adding support for FCM to an application requires multiple steps: add support to the Android Studio project, obtain registration tokens and implement handlers to identify message notifications.[9] The message notifications can be sent via the Firebase console with a select user segmentation option.

FCM Architecture

The FCM Architecture includes three components: FCM connection server, a Trusted environment with an application server based on HTTP or XMPP and cloud functionality, and a Client application. Sending and receiving messages require a secured environment or server to build, direct and send messages, and an iOS, Android or web client application to receive messages.[10] Two types of messages developers can send with FCM are notification messages displayed on the device by FCM and data messages processed by the application.

Firebase cloud messaging architecture

Mokar, M. A., Fageeri, S. O., & Fattoh, S. E. (2019, September). Using Firebase Cloud Messaging to Control Mobile Applications. In 2019 International Conference on Computer, Control, Electrical, and Electronics Engineering (ICCCEEE) (pp. 1–5). IEEEFCM can deliver target messages to applications via three methods: to a single device, to a device group or to devices which are subscribed to topics. Developers build and send targeted messages to a select group of users on the ‘Notification composer.’ [9] Messages send with FCM are integrated with the Firebase Analytics functionality to track user conversion and engagement.

Implementation

The implementation process has two key components. First, a secure environment to send and receive messages is required for FCM or other application servers to facilitate message transaction. Second, a client application of possible types, iOS, Android or web (javaScript), which is also compatible with the selected platform service is needed.

The implementation path for FCM is initiated with the FCM SDK setup following the instructions prescribed for the decided platform. Following setup, the client application must be developed. On the client app, add message handling, topic subscription logic and other required features. During this step, test messages can also be sent from the Notifications composer. The application server is developed next to build the sending logic. The base server environment is created without code.[4]

Additional Features

Analytics

Firebase offers free and unrestricted analytics tools to assist the user gain insights into the 'ad click' & 'application usage' of end customers. In conjunction with other Firebase features, Firebase Analytics allows the user to explore and use on a range of functionalities such as click-through rates to app crashes.[11]

Firebase Remote Config

It is a simple key-value store that lives in the cloud and enables the user to implement modifications which can be read by the application. The Firebase Remote Config also includes an audience builder, in addition to the basic feature, which helps the user create custom audiences and perform A / B testing.[11]

Cross-Platform Support

APIs packaged into single SDKs for iOS, Android, JavaScript and C++ in conjunction with the cross-platform support provided by FCM allow the developer to expand across different platforms without infrastructure modification.[11]

Web Push Support

Developers can implement the standard IETF Web Push APIs and being to target web browsers. On Chrome, developers can send messages to Chrome on Android or Chrome pages in Mac, Windows and Linux. Added features for web push support include Topic Messaging and the ability to send messages to Topic Combinations.[11]

Topic Messaging

Developers can send a single message to multiple devices. It is a method of notification to users with common interest topics such as sports events, artists, music genres. Developers need to publish a message to FCM, which is automatically delivered to devices subscribed to the select topic. Subscriber count on a single topic or multiple topics are not limited on the application.[11]

Topic Combination Messaging

If users are subscribed to different topics, to prevent publishing the same message across different topics and users from receiving duplicate messages, developers can use the updated API. Developers can set specific conditions for FCM to deliver the message only to users who meet the condition criteria.[11]

Key Concerns

Security Concerns

FCM shortens the design and implementation process for mobile applications. Due to the available functionality of sending test messages through the Notifications Composer in the Firebase console, the testing process is also shortened. Cloud-based messaging solutions also have security and privacy risks which need to be mitigated and considered before implementation into a project. The development of cloud computing involves an open network structure and elastic pooling of shared resources which increases the need for cloud security measures to be established.

A security concern is the potential exploitation of server keys which are stored in the FCM’s Android application package (APK) files. If exploited, this allows the distribution of push notification messages to any and all users on the Firebase platform. GCM has previously reported security vulnerabilities where phishing and malicious advertisement activities have occurred.

Protection against security threats involves multiple steps and can lead to additional implications. Deactivating the Cloud Messaging service will prevent immediate transactions. However, this could potentially stop other applications installed on the blocked device which rely on the FCM service.[12] A possible solution is to block a specific notification channel or unsubscribe from a topic. Other solutions involve setting up message traffic notification systems to detect malicious information being messaged through the FCM service platform.[13] To implement this solution additional steps are required. The user needs to identify at the start, the connection channel or topic potentially used by the malicious application.

Privacy Concerns

Cloud-based messaging also poses privacy risks and issues. Black hat hackers may be able to breach the security of the Firebase Cloud Messaging platform and acquire the registration ID of the user’s application or other sensitive information. Security compromise examples include private messages on a user’s social media account being pushed to the hacker’s device.To ensure the privacy of the platform, the user can build end-to-end protection schemes around the open communication channels provided by the Cloud Messaging Services, which are unsecure. FCM provides users with payload encryption.

References

  1. ^ "Firebase Cloud Messaging". Google Developers. Retrieved July 20, 2016.
  2. ^ Tamplin, James. "Firebase is Joining Google!". Firebase, Inc. Retrieved October 21, 2014.
  3. ^ "Google Cloud Messaging - official website". Retrieved July 20, 2016.
  4. ^ a b c Kantamani, S. (2020). Firebase Cloud Messaging. Retrieved 7 September 2020, from https://medium.com/developermind/using-firebase-cloud-messaging-for-remote-notifications-in-ios-d35de1dc67b2
  5. ^ a b Moroney, L. (2017). Firebase Cloud Messaging. In The Definitive Guide to Firebase (pp. 163-188). Apress, Berkeley, CA.
  6. ^ Novet, J. (2016). Google launches Firebase Cloud Messaging for the web. Retrieved 7 October 2020, from https://venturebeat.com/2016/10/17/google-launches-firebase-cloud-messaging-for-the-web/
  7. ^ a b Albertengo, G., Debele, F. G., Hassan, W., & Stramandino, D. (2020). On the performance of web services, google cloud messaging and firebase cloud messaging. Digital Communications and Networks, 6(1), 31-37.
  8. ^ "Firebase Cloud Messaging". Firebase. Retrieved November 16, 2020.
  9. ^ a b Yilmaz, Y. S., Aydin, B. I., & Demirbas, M. (2014, December). Google cloud messaging (GCM): An evaluation. In 2014 IEEE Global Communications Conference (pp. 2807-2812). IEEE.
  10. ^ Mokar, M. A., Fageeri, S. O., & Fattoh, S. E. (2019, September). Using Firebase Cloud Messaging to Control Mobile Applications. In 2019 International Conference on Computer, Control, Electrical, and Electronics Engineering (ICCCEEE) (pp. 1-5). IEEE
  11. ^ a b c d e f Sharma, R. (2020). What is GCM and FCM? (Differences and Limitations). Retrieved 2 October 2020, from https://www.izooto.com/blog/everything-that-you-need-to-know-about-firebase-cloud-messaging-platform
  12. ^ Esposito, Christian; Palmieri, Francesco; Choo, Kim-Kwang Raymond (March 2018). "Cloud Message Queueing and Notification: Challenges and Opportunities". IEEE Cloud Computing. 5 (2): 11–16. doi:10.1109/mcc.2018.022171662. ISSN 2325-6095.
  13. ^ Li, Na; Du, Yanhui; Chen, Guangxuan (December 2013). "Survey of Cloud Messaging Push Notification Service". 2013 International Conference on Information Science and Cloud Computing Companion. IEEE. doi:10.1109/iscc-c.2013.132. ISBN 978-1-4799-5245-8.