Découverte de Firebase – épisode 3 : tirer profit de la puissance de la solution
La dernière fois, nous vous avions présenté le fleuron de la flotte Firebase, la crème de la crème. Mais la plateforme ne s’arrête pas là, bien évidemment. Une multitude de services existent pour faciliter votre développement et profiter un maximum de la puissance de notre ami Google. N’hésitez pas à consulter la documentation Firebase pour voir l’ensemble de ces services et trouver ceux qui conviendront le mieux à vos besoins. Nous avons effectué une petite sélection parmi nos services préférés, qui sauront trouver leur place dans votre projet et le mettre en valeur comme il se doit. Petite présentation de Firebase Cloud Messaging, Firebase Hosting et Cloud Storage.
Si vous souhaitez lire nos deux premiers articles :
Firebase Cloud Messaging, l’envoi de notifications gratis
Firebase Cloud Messaging (FCM pour les intimes) est une solution de messagerie multiplateforme qui vous permet de créer un flux de notifications iOS, Android et Web sans frais et via un canal de connexion fiable. Envoyez instantanément, ou selon le fuseau horaire de vos utilisateurs, en définissant des priorités, des sons et ou encore des dates d’expiration pour vos messages.
À l’aide de FCM, vous pouvez envoyer des messages pour stimuler vos utilisateurs. Faites passer une information (mise à jour de votre application, nouveau message reçu sur un chat, commentaire ajouté sur un article…) ou envoyez des promotions sur les services proposés sur votre application. Voilà la base du service dans les grandes lignes. Mais ce dernier propose bien plus que cela : il vous permet également d’enregistrer des données dans la base de données locale d’un téléphone, de déclencher un événement ou encore de donner des ordres à un appareil. Le champ des possibilités est impressionnant lorsque vous maîtrisez le fonctionnement des différents types de notifications proposés.
Firebase Cloud Messaging offre plusieurs types de distribution : vers un seul appareil, vers un groupe d’appareils ou encore vers des appareils filtrés selon vos critères (rôles utilisateur, abonnements…). Un message peut transférer une charge utile allant jusqu’à 4 Ko vers une application cliente, ce qui est assez honorable.
Pour évoluer sereinement avec Firebase Cloud Messaging, il faut prendre en compte le type de notification envoyée et la position de votre application en foreground ou en background (ouverte/active ou fermée/inactive si on veut). Ces paramètres influent sur l’affichage des messages et la récupération de leur contenu. Avant de vous lancer dans la configuration de votre système de messagerie, vous devez connaître les possibilités de traitement d’une notification par l’appareil ciblé. Un téléphone Android peut ne pas interpréter la notification comme un téléphone IOS, par exemple.
Il existe 3 types de notification :
- Les notifications simples, contenant uniquement les données par défaut,
- Les notifications personnalisées, contenant des données (roulements de tambour…) personnalisables,
- Les notifications mixtes, qui contiennent les deux types de données.
Les données par défaut représentent le message de votre notification, à savoir ce que l’utilisateur voit lorsqu’il reçoit la notification. La donnée par défaut est obligatoire si vous passez par l’éditeur de notifications fourni par Firebase, mais est facultative si la notification est utilisée via l’API. Au niveau du code, la donnée est écrite dans les champs title et body de l’objet notification :
Les données personnalisées sont employées pour le traitement de la notification lorsqu’elle est reçue par un mobile. Elles ne sont pas visibles par l’utilisateur, ce sont des informations sous forme de clé-valeur que vous pouvez récupérer et traiter via votre code. C’est particulièrement utile pour le déclenchement d’actions en fonction des données reçues. En effet, vous pouvez profiter d’une donnée personnalisée pour détecter l’ouverture de la notification et offrir facilement à vos clients des réductions ou des événements inédits. Les données personnalisées sont toujours facultatives, que ce soit dans le l’éditeur de notifications ou dans l’API. Ci-dessous un petit mélange très simple de données par défaut et de données personnalisées :
Avec ce code, vous pouvez informer vos utilisateurs d’une réduction en cours et appliquer ladite réduction à l’ouverture de la notification.
Pour implémenter Firebase Cloud Messaging, rien de bien sorcier. Vous n’avez besoin que de deux choses :
- Un environnement de confiance tel que Cloud Functions pour Firebase ou un serveur d’applications pour configurer et envoyer les messages.
- Une application cliente iOS, Android ou Web pour recevoir les messages
Vous pouvez envoyer des notifications via le SDK Firebase Admin ou grâce aux protocoles du serveur FCM. Par contre, rien ne garantit l’ordre de livraison des notifications à moins d’utiliser le système de priorité (normale ou haute) fourni par Firebase Cloud Messaging.
Pour tester vos notifications, vous pouvez compter sur des tests A / B élaborés en partenariat avec Google Optimize, un outil de test A / B et de personnalisation pour le Web. N’hésitez pas également à jouer avec l’éditeur de notifications proposé par Firebase pour personnaliser vos messages avec des segments importés, ou pour tester vos campagnes marketing à l’aide du système d’analyse. En effet, FCM peut s’associer au service Google Analytics, ce qui vous permet d’accéder à un suivi détaillé de vos conversions. Il est ainsi aisé de s’assurer de l’efficacité de vos envois, sans avoir à coder quoi que ce soit.
Firebase Hosting, l’hébergement tout feu tout flamme
Firebase Hosting est un service d’hébergement (on s’en serait un peu douté) pour vos applications Web, vos contenus statiques ou dynamiques et pour vos microservices. Un service qui se veut sécurisé, rapide et GRA-TUIT.
La plupart des hébergements nécessitent un abonnement plus ou moins onéreux. Lorsqu’ils sont gratuits, ils s ‘avèrent généralement lents et demandent tout de même de payer pour bénéficier d’un certificat SSL. Comme dit précédemment, Firebase Hosting est gratuit. Cela ne signifie pourtant pas que vous serez confronté à des soucis de latence ou de sécurité. Un certificat SSL sans configuration est fourni par défaut, et vous pouvez compter sur une vitesse impressionnante.
Firebase Hosting assure votre hébergement sur plusieurs zones géographiques et sans avoir besoin d’un CDN séparé. Il prend en charge toutes sortes de contenus, des classiques fichiers CSS et HTML aux microservices. Chaque fichier téléchargé est mis en cache sur des disques SSD aux extrémités CDN, dans le monde entier. La compression est optimisée pour chaque contenu, de façon à ce que ce dernier soit délivré le plus rapidement possible.
Comme la majorité des services proposés par Firebase, le déploiement ne prend qu’une seule commande. Le service propose également l’accès à un historique de déploiement, ou encore la possibilité de revenir à une version antérieure de votre projet via la console Firebase. Plusieurs options sont disponibles concernant la gestion des domaines sous-domaines :
- Chaque projet Firebase propose par défaut deux domaines : web.app et firebaseapp.com, qui peuvent également gérer gratuitement des sous-domaines. Ces deux sites ont la même configuration.
- Il est possible de générer plusieurs sites dans le cas où vous possédez plusieurs projets avec un contenu différent mais les mêmes ressources de projet Firebase.
- Si vous possédez déjà un nom de domaine, il est tout à fait possible de le connecter à un site hébergé par Firebase.
Cloud Storage, ou comment avoir ses fichiers dans les nuages
Comme son nom l’indique, le dernier service Firebase que nous allons évoquer dans cet article est conçu pour stocker et diffuser les contenus médias de vos utilisateurs. Pensé pour une échelle exa-octet, Storage s’adapte à la taille de votre projet et ne craint pas les pics de transfert, pour le bonheur d’applications de grande ampleur comme Spotify et Google Photos.
Le SDK de Cloud Storage est pensé pour optimiser les transferts, même lors d’une perte de connexion. Dans le cas où l’appareil de l’utilisateur n’est plus connecté, il se met automatiquement en pause et reprend les transferts lorsque l’application regagne une connexion stable. Ce procédé permet d’économiser du temps et de la bande passante.
Cloud Storage stocke les fichiers dans un bucket Google Cloud Storage. De ce fait, les données sont accessibles via Firebase ET via Google Cloud. Ce procédé vous permet d’importer et de télécharger des fichiers à partir du client via les SDK Firebase, puis de traiter le résultat côté serveur à l’aide de Google Cloud Platform. Pour stocker vos éléments, vous devez générer un bucket de stockage par défaut via la console Firebase et configurer son emplacement. Attention : une fois l’emplacement des ressources par défaut défini, vous ne pouvez plus le modifier. Pour pouvoir créer plusieurs compartiments avec des emplacements propres, vous devez mettre la main au portefeuille. Tout n’est pas gratuit chez Google.
Pour accéder à un fichier, il suffit de déclarer la référence au chemin d’accès dudit fichier, comme par exemple “images / logo.png”. Une fois le fichier récupéré via le chemin d’accès, vous pouvez le transformer à votre guise.
Côté sécurisation des contenus téléchargés, le SDK Firebase s’associe encore une fois à Firebase Authentication pour un contrôle simple et intuitif. Il est ainsi aisé de gérer l’accès aux fichiers en définissant des règles selon l’identité de l’utilisateur ou les propriétés du fichier ciblé (nom, taille, type…). Les données sont protégées, quelle que soit la qualité du réseau.
Lorsqu’on évolue dans l’univers de Firebase, Cloud Storage est la solution de facilité pour stocker les médias générés par une application.
Pour conclure notre série d’articles,
En optant pour Firebase, vous profitez d’une solution puissante, simple et sur mesure. Étant donné que Firebase utilise l’infrastructure de Google, la plateforme n’a aucun mal à s’adapter à l’évolution de votre application, et vous permet de profiter de la gestion des données en temps réel. La plupart des services sont gratuits, ou ne nécessitent un abonnement qu’après avoir atteint une certaine quantité de mémoire en base de données. De plus, il existe environ 1,5 million d’applications dans le monde basées sur Firebase, ce qui rend la communauté de la plateforme forte et réactive.
Attention cependant à bien réfléchir aux besoins de votre projet avant de vous plonger la tête la première dans l’univers Firebase. La plateforme propose effectivement des fonctionnalités efficaces et applicables à un bon nombre de projets, mais elle a tout de même ses limites. Si votre application nécessite des requêtes complexes, vous pourriez rapidement vous retrouver coincé. Attention également aux mises à jour régulières de Firebase, qui ne sont pas toujours déclarées dans le changelog. Prenez le temps de vous renseigner sur les dernières nouveautés de la plateforme ainsi que sur leur impact sur vos applications.
Il ne faut pas oublier qu’avec Firebase, toutes les données sont hébergées sur des serveurs qui ne vous appartiennent pas. Cela rend ses utilisateurs dépendants et complique grandement le transfert d’une application vers une autre source. Par conséquent, il est extrêmement difficile de gérer la migration ou l’export de ses données données sans avoir à contacter l’équipe Firebase.
Petite désillusion pour les développeurs adepte de la grosse pomme : Firebase se concentre majoritairement sur les applications Android et ne fournit pas toujours les mêmes fonctionnalités pour les applications iOS. Beaucoup de services offrent des prestations en bêta ou limitées, ce qui peut s’avérer contraignant pour les projets multi-plateformes. En espérant que la gamme complète Firebase soit rapidement retravaillée pour offrir la même expérience à tous.
Il est judicieux de prendre du recul sur les fonctionnalités proposées par votre application, quitte à mettre Firebase de côté et développer un back-end dédié si celle-ci se révèle trop complexe. Mais cela ne doit en aucun cas vous faire freiner des quatre fers : le champ des possibles reste monstrueux, ce qui n’est pas pour nous déplaire. Si notre article vous a conquis, vous pouvez commencer à développer sereinement en bénéficiant de la puissance de notre cher ami Google. En ce qui concerne Owlie, nous apprécions travailler avec la plateforme et n’hésitons pas à l’intégrer à une majorité de nos projets.
Vous pouvez retrouver nos deux premiers articles ici :