Firebase Cloud Messaging ( FCM ), anciennement connu sous le nom de Google Cloud Messaging (GCM), est un service cloud multiplateforme pour les messages et les notifications pour Android , iOS et les applications Web , qui peut être utilisé gratuitement depuis mai 2023. Firebase Cloud Messaging permet aux développeurs d'applications tierces d'envoyer des notifications ou des messages depuis les serveurs hébergés par FCM aux utilisateurs de la plateforme ou aux utilisateurs finaux .
Le service est fourni par Firebase , une filiale de Google . Le 21 octobre 2014, Firebase a annoncé avoir été racheté par Google pour un montant non divulgué. Le site officiel de Google Cloud Messaging désigne Firebase Cloud Messaging (FCM) comme la nouvelle version de GCM. Firebase est une plateforme mobile qui aide les utilisateurs à développer des applications mobiles et Web. Firebase Cloud Messaging est l'un des nombreux produits qui font partie de la plateforme Firebase. Sur la plateforme, les utilisateurs peuvent intégrer et combiner différentes fonctionnalités de Firebase dans des applications Web et mobiles.
Histoire
Firebase Cloud Messaging (FCM) fait partie de la plateforme Firebase, un modèle de service cloud qui automatise le développement backend ou un Backend-as-a-service (BaaS). Après l'acquisition de la société Firebase par Google en 2014, certains produits ou technologies de la plateforme Firebase ont été intégrés aux services existants de Google. Le service de notification mobile de Google, Google Cloud Messaging (GCM), a été remplacé par FCM en 2016. Le 10 avril 2018, GCM a été supprimé par Google et le 29 mai 2019, le serveur GCM et l'API client ont été abandonnés. FCM est devenu le remplaçant de GCM. Cependant, FCM est compatible avec les kits de développement logiciel (SDK) de Google existants.
Firebase Cloud Messaging est un service de messagerie multiplateforme sur lequel l'utilisateur peut envoyer des messages sans frais. FCM est compatible avec diverses plates-formes, notamment Android et iOS. Google a lancé le support des applications Web le 17 octobre 2016, y compris les applications Web mobiles. Sur FCM, les développeurs d'applications tierces peuvent envoyer des notifications push et des messages via une interface de programmation d'application (API) aux utilisateurs finaux. Une fois que les utilisateurs ont donné leur consentement pour recevoir des notifications push, ils peuvent recevoir des informations ou des données en temps réel pour la synchronisation.
Développement
FCM hérite de l'infrastructure de base de GCM, mais simplifie le développement côté client. GCM et FCM offrent le chiffrement, la notification push et la messagerie, ainsi que la prise en charge native des SDK Android et iOS. Les deux nécessitent une entité tierce entre l'application cliente et l'environnement de confiance, ce qui peut créer des retards dans le chemin de communication entre le terminal mobile et le serveur d'applications. FCM prend en charge les protocoles serveur HTTP et XMPP qui sont identiques aux protocoles GCM.
Les développeurs ne sont pas obligés d'écrire des enregistrements individuels ou des tentatives de connexion par abonnement dans l'application cliente. FCM et GCM gèrent les messages via les mêmes instructions, cependant, au lieu des serveurs de connexion GCM, les messages sont transmis via les serveurs FCM. Le kit de développement logiciel (SDK) FCM exclut l'écriture d'une logique de tentative d'enregistrement ou d'abonnement individuelle pour un processus de développement client raccourci. Le SDK FCM fournit une nouvelle solution de notification permettant aux développeurs d'utiliser les notifications Firebase sans serveur sur une console Web, en fonction des informations de Firebase Analytics. FCM permet d'envoyer un nombre illimité de messages en amont et en aval.
Principales capacités
Firebase Cloud Messaging possède trois fonctionnalités principales. La première est que FCM permet à l'utilisateur de recevoir des messages de notification ou des messages de données qui peuvent être déchiffrés par le code de l'application. La deuxième fonctionnalité est le ciblage des messages. Les messages peuvent être envoyés à l'application cliente par différentes méthodes ; de la plateforme FCM à des appareils individuels, à des groupes d'appareils spécifiés ou à des appareils abonnés à des domaines thématiques particuliers. La troisième fonctionnalité clé est le canal de connexion des applications clientes au serveur. FCM permet d'envoyer des messages de différents types à partir d'appareils sélectionnés ou d'applications clientes via le canal FCM.
Détails techniques
Firebase Cloud Messaging envoie des notifications et des messages aux appareils sur lesquels sont installées des applications spécifiques compatibles Firebase. L'ajout de la prise en charge de FCM à une application nécessite plusieurs étapes : ajouter la prise en charge au projet Android Studio, obtenir des jetons d'enregistrement et implémenter des gestionnaires pour identifier les notifications de messages. Les notifications de messages peuvent être envoyées via la console Firebase avec une option de segmentation utilisateur sélectionnée.
Architecture FCM
L'architecture FCM comprend trois composants : un serveur de connexion FCM, un environnement de confiance avec un serveur d'applications basé sur HTTP ou XMPP et une fonctionnalité cloud, et une application client. L'envoi et la réception de messages nécessitent un environnement ou un serveur sécurisé pour créer, diriger et envoyer des messages, et une application client iOS, Android ou Web pour recevoir des messages. Il existe deux types de messages que les développeurs peuvent envoyer avec FCM ; les messages de notification et les messages de données. Les messages de notification sont des messages affichés sur l'appareil par FCM et sont automatiquement gérés par le SDK FCM. Les messages de données sont traités par l'application cliente. Par conséquent, les messages de notification sont utilisés lorsque le développeur demande à FCM de gérer l'affichage des notifications pour les applications clientes. Les messages de données seront utilisés lorsque le développeur demande que les messages soient traités sur l'application cliente.

FCM peut envoyer des messages ciblés aux applications via trois méthodes : à un seul appareil, à un groupe d'appareils ou à des appareils abonnés à des rubriques. Les développeurs créent et envoient des messages ciblés à un groupe sélectionné d'utilisateurs sur le « Compositeur de notifications ». Les messages envoyés avec FCM sont intégrés à Google Analytics pour suivre la conversion et l'engagement des utilisateurs.
Mise en œuvre
Le processus de mise en œuvre comporte deux éléments clés. Tout d'abord, un environnement sécurisé pour l'envoi et la réception de messages est nécessaire pour que FCM ou d'autres serveurs d'applications puissent faciliter la transaction de messages. Ensuite, une application cliente de types possibles, iOS, Android ou Web (javaScript), qui est également compatible avec le service de plateforme sélectionné est nécessaire.
Le chemin d'implémentation de FCM est initié avec la configuration du SDK FCM en suivant les instructions prescrites pour la plateforme choisie. Après la configuration, l'application client doit être développée. Sur l'application client, ajoutez la gestion des messages, la logique d'abonnement aux rubriques et d'autres fonctionnalités requises. Au cours de cette étape, des messages de test peuvent également être envoyés à partir du composeur de notifications. Le serveur d'applications est ensuite développé pour créer la logique d'envoi. L'environnement du serveur de base est créé sans code.
Flux d'architecture
L'enregistrement de l'appareil et sa configuration pour permettre la réception des messages de FCM sont d'abord requis. L'instance d'application cliente sera enregistrée et un jeton d'enregistrement ou jeton FCM lui sera attribué, qui est émis par les serveurs de connexion FCM qui fourniront à l'instance d'application (instance d'application) un identifiant unique. L'instance d'application est alors en mesure d'envoyer et de recevoir des messages en aval. La messagerie en aval fait référence à l'envoi d'une notification push du serveur d'application vers l'application cliente. Ce processus comporte quatre étapes. Tout d'abord, après la création d'un message sur le composeur de notifications ou dans un autre environnement sécurisé, une demande de message sera envoyée au backend FCM. Ensuite, le backend FCM recevra et acceptera la demande de message et préparera les messages pour chaque sujet spécifié, créera des métadonnées de message telles qu'un identifiant de message et les enverra à une couche de transport, spécifique à la plateforme. Troisièmement, le message sera envoyé via la couche de transport spécifique à la plateforme à un appareil en ligne. La couche de transport au niveau de la plateforme est responsable de l'acheminement du message vers un appareil spécifique, de la gestion de la livraison du message et de l'application de configurations spécifiques à la plateforme. Quatrièmement, l’application cliente recevra la notification ou le message via son appareil.
Fonctionnalités et outils supplémentaires
Analytique
Firebase propose des outils d'analyse gratuits et sans restriction pour aider l'utilisateur à mieux comprendre les « clics publicitaires » et « l'utilisation des applications » des clients finaux. En conjonction avec d'autres fonctionnalités de Firebase, Firebase Analytics permet à l'utilisateur d'explorer et d'utiliser une gamme de fonctionnalités telles que les taux de clics et les pannes d'applications.
Configuration à distance de Firebase
Il s'agit d'un simple magasin de clés et de valeurs qui réside dans le cloud et permet à l'utilisateur d'implémenter des modifications qui peuvent être lues par l'application. Firebase Remote Config comprend également un générateur d'audience, en plus de la fonctionnalité de base, qui aide l'utilisateur à créer des audiences personnalisées et à effectuer des tests A/B.
Prise en charge multiplateforme
Les API regroupées dans des SDK uniques pour iOS, Android, JavaScript et C++, associées au support multiplateforme fourni par FCM, permettent au développeur de s'étendre sur différentes plates-formes sans modification de l'infrastructure.
Prise en charge du Web Push
Les développeurs peuvent implémenter les API Web Push standard de l'IETF et cibler les navigateurs Web. Sur Chrome, les développeurs peuvent envoyer des messages à Chrome sur Android ou aux pages Chrome sur Mac, Windows et Linux. Les fonctionnalités ajoutées pour la prise en charge du Web Push incluent la messagerie par sujet et la possibilité d'envoyer des messages à des combinaisons de sujets.
Sujet Messagerie
Les développeurs peuvent envoyer un seul message à plusieurs appareils. Il s'agit d'une méthode de notification aux utilisateurs ayant des sujets d'intérêt communs tels que les événements sportifs, les artistes, les genres musicaux. Les développeurs doivent publier un message sur FCM, qui est automatiquement envoyé aux appareils abonnés au sujet sélectionné. Le nombre d'abonnés à un seul sujet ou à plusieurs sujets n'est pas limité sur l'application.
Messagerie combinée à thème
Si les utilisateurs sont abonnés à des rubriques différentes, pour éviter de publier le même message sur différentes rubriques et de recevoir des messages en double, les développeurs peuvent utiliser l'API mise à jour. Les développeurs peuvent définir des conditions spécifiques pour que FCM envoie le message uniquement aux utilisateurs qui répondent aux critères de condition.
Rapports de livraison des messages
Les rapports de livraison de messages (MDR) sont générés par l'outil de reporting de FCM qui permet aux développeurs d'obtenir des informations analytiques sur la livraison des messages. Dans le MDR, les développeurs peuvent évaluer la portée des messages envoyés à des utilisateurs spécifiques en affichant les données des messages vers différents SDK FCM (Android, iOS).
Analyse de l'entonnoir de notification
Une analyse de l'entonnoir de notifications (NFA) est intégrée à la plateforme FCM. En utilisant cet outil, les développeurs peuvent visualiser le comportement et les tendances des utilisateurs à partir des données relatives aux réponses à des notifications particulières. Les types de données de notification qui peuvent être analysés sont les « Notifications envoyées », les « Notifications ouvertes » et le nombre d'utilisateurs uniques. Un rapport d'analyse peut être extrait de la NFA. Les développeurs peuvent également personnaliser et créer les entonnoirs de notifications.
Principales préoccupations
Problèmes de sécurité
FCM raccourcit le processus de conception et de mise en œuvre des applications mobiles. Grâce à la fonctionnalité disponible d'envoi de messages de test via le Notifications Composer dans la console Firebase, le processus de test est également raccourci. Les solutions de messagerie basées sur le cloud présentent également des risques de sécurité et de confidentialité qui doivent être atténués et pris en compte avant la mise en œuvre dans un projet. Le développement du cloud computing implique une structure de réseau ouverte et une mise en commun élastique des ressources partagées, ce qui augmente la nécessité de mettre en place des mesures de sécurité dans le cloud.
L'exploitation potentielle des clés de serveur stockées dans les fichiers APK ( package d'application Android ) du FCM constitue un problème de sécurité. Si cette vulnérabilité est exploitée, elle permet la distribution de messages de notification push à tous les utilisateurs de la plateforme Firebase. GCM a déjà signalé des vulnérabilités de sécurité dans lesquelles des activités de phishing et de publicité malveillante ont eu lieu.
La protection contre les menaces de sécurité implique plusieurs étapes et peut entraîner des implications supplémentaires. La désactivation du service Cloud Messaging empêchera les transactions immédiates. Cependant, cela pourrait potentiellement arrêter d'autres applications installées sur l'appareil bloqué qui s'appuient sur le service FCM. Une solution possible consiste à bloquer un canal de notification spécifique ou à se désabonner d'un sujet. D'autres solutions impliquent la mise en place de systèmes de notification du trafic de messages pour détecter les informations malveillantes transmises via la plateforme de service FCM. Pour mettre en œuvre cette solution, des étapes supplémentaires sont nécessaires. L'utilisateur doit identifier au départ le canal de connexion ou le sujet potentiellement utilisé par l'application malveillante.
Problèmes de confidentialité
La messagerie basée sur le cloud présente également des risques et des problèmes de confidentialité. Les pirates informatiques peuvent être en mesure de violer la sécurité de la plateforme Firebase Cloud Messaging et d'acquérir l'identifiant d'enregistrement de l'application de l'utilisateur ou d'autres informations sensibles. Les exemples de compromission de sécurité incluent les messages privés sur le compte de médias sociaux d'un utilisateur envoyés sur l'appareil du pirate. Pour garantir la confidentialité de la plateforme, l'utilisateur peut créer des schémas de protection de bout en bout autour des canaux de communication ouverts fournis par les services de messagerie cloud, qui ne sont pas sécurisés. FCM fournit aux utilisateurs un chiffrement de la charge utile.