Qu’est-ce que Firebase ? Tous les secrets dévoilés
Cet article propose une analyse approfondie de Firebase, de ses principaux avantages et inconvénients, de sa structure tarifaire et de ses principales fonctionnalités.
Le développement d’applications mobiles robustes et de haute qualité est une proposition qui nécessite beaucoup de dévouement, mais surtout une plateforme de développement puissante et riche en fonctionnalités.
Firebase, de l’écurie Google, est l’une de ces plateformes qui a conquis les développeurs du monde entier.
Firebase offre aux développeurs de nombreuses options pour créer des applications web, Android et iOS hautement fonctionnelles et polyvalentes.
Alors que plusieurs concurrents sont présents dans l’espace de développement d’applications, Firebase est en constante conversation avec les meilleures plateformes actuellement disponibles.
Lisez la suite pour découvrir le fonctionnement de Firebase et obtenir un aperçu approfondi de ses capacités.
Contents
Qu’est-ce que Firebase et comment fonctionne-t-il ?
Qu’est-ce que Google Firebase ? Il s’agit d’une plateforme de développement d’applications mobiles de Google dotée de puissantes fonctionnalités permettant de développer, de gérer et d’améliorer les applications. Firebase est une plateforme dorsale pour la création d’applications web et mobiles.(1)
Firebase est fondamentalement un ensemble d’outils sur lesquels les développeurs peuvent s’appuyer pour créer et développer des applications basées sur la demande.
Firebase vise à résoudre trois problèmes principaux pour les développeurs :
- Créer rapidement une application
- Lancer et contrôler une application en toute confiance
- Impliquer les utilisateurs,
Les développeurs qui s’appuient sur cette plateforme ont accès à des services qu’ils devraient développer eux-mêmes, ce qui leur permet de se concentrer sur la fourniture d’applications robustes.
Les bases de données, l’authentification, les messages push, l’analyse, le stockage de fichiers et bien plus encore sont quelques-unes des fonctionnalités remarquables de la plateforme Google Firebase.
Les services étant hébergés dans le nuage, les développeurs peuvent procéder à une mise à l’échelle à la demande sans problème. Firebase est actuellement l’une des principales plateformes de développement d’applications sur lesquelles s’appuient les développeurs du monde entier.
Catégorie | Détails |
---|---|
Aperçu de Firebase | Une plateforme de développement d’applications mobiles de Google avec des fonctionnalités pour le développement et l’amélioration des applications. |
Caractéristiques principales de Firebase | Comprend les bases de données, l’authentification, les messages push, l’analyse, le stockage de fichiers, etc. |
Emplacement de la base de feu | Siège à San Francisco, Californie. |
Fondateurs de Firebase | Fondée par Andrew Lee et James Tamplin en 2011. |
Applications populaires utilisant Firebase | Alibaba, The New York Times, Todoist, Le Figaro, eBay Motors. |
Types d’applications pouvant être développées | Applications Android, iOS et Web. |
À quoi sert Firebase ? | Les cas d’utilisation populaires de Firebase incluent les MVPs, les applications en temps réel, les applications de chat/messagerie, l’optimisation des publicités, le partage de photos, les applications professionnelles. |
Alternatives à Firebase | Back4app, Backendless, AWS Amplify, Parse. |
Historique de Firebase
L’histoire de Firebase est assez fascinante, et comme beaucoup de startups, elle a connu des hauts et des bas. Elle est issue d’Envolve, une startup créée en 2011 par Andrew Lee et James Tamplin.(2, 3, 4)
La société proposait aux développeurs une interface de programmation (API) pour faciliter l’intégration du chat en ligne sur les sites web. Les fondateurs d’Envolve ont découvert que leur service de chat était utilisé pour relayer des messages ne relevant pas du chat.
Les développeurs s’appuyaient sur la plateforme pour synchroniser les données des applications en temps réel. Lee et Tamplin ont décidé de différencier l’architecture en temps réel du système de chat, ce qui a conduit à la création de Firebase en 2011. La plateforme Firebase backend as a service a été lancée publiquement en avril 2012.
Le premier produit Firebase lancé a été la base de données en temps réel. Il s’agit d’une API pour la synchronisation des données d’application entre les appareils Android, web et iOS. Les développeurs d’applications peuvent s’appuyer sur cette plateforme pour créer des applications collaboratives en temps réel.
La société a accumulé un financement de démarrage de plus d’un million de dollars en 2012 auprès de contributeurs, notamment Greylock Partners, New Enterprise Associates, Flybridge Capital Partners et Founder Collective. La société a également obtenu un financement de série A de 5,6 millions de dollars en juin 2013 auprès de Flybridge Capital Partners et Union Square Ventures.(5)
Firebase Authentication et Firebase Hosting ont été lancés en 2014 par Firebase, établissant l’entreprise comme un leader du backend mobile en tant que service (MbaaS).
Firebase a été intégré à Google en octobre 2014 et constitue désormais la plateforme Google BaaS. Le géant technologique a ensuite acquis Divshot, une plateforme d’hébergement web qui a ensuite été fusionnée avec Firebase.(6)
Critiques de Firebase
Selon G2, Firebase a un score de 4,5 sur 5, et 266 utilisateurs ont évalué la plateforme. Les mentions populaires et les caractéristiques du produit comprennent le développement d’applications, les fonctions cloud et le stockage de données.
Selon TrustRadius, Firebase a un score de 8,5 sur 10, et 128 utilisateurs ont évalué la plateforme. Le sentiment est positif pour la plupart des utilisateurs, et seule une infime minorité a évalué la plateforme de manière négative.
Selon Capterra, Firebase a un score de 4,6 sur 5, et 764 utilisateurs ont évalué la plateforme. L’ensemble des fonctionnalités est un aspect positif communément mentionné, et la complexité de la solution est un aspect négatif communément mentionné.
Avantages de Firebase
Avantages Numéro | Avantage | Description |
---|---|---|
1 | Démarrage gratuit | Firebase propose un plan Spark gratuit avec des limites généreuses, permettant aux développeurs de commencer sans frais. |
2 | Vitesse de développement | Il permet un développement rapide et réduit les délais de mise sur le marché, car il permet aux développeurs frontaux de prendre en charge la plus grande partie du travail sans nécessiter d’équipe dorsale distincte. |
3 | Plateforme de développement d’applications de bout en bout | Fournit un ensemble complet d’outils couvrant l’ensemble du cycle de développement des applications, de la création et des tests au déploiement et à la surveillance. |
4 | Propulsé par Google | Soutenu par Google, il offre robustesse et intégration avec les services Google Cloud. |
5 | Focus sur le développement de l’interface utilisateur | Réduit le besoin de code backend, ce qui permet aux développeurs de se concentrer sur la création d’applications frontales. |
6 | C’est du sans serveur | Offre un environnement sans serveur, réduisant les préoccupations liées à la mise à l’échelle et à la gestion des serveurs. |
7 | Capacités d’apprentissage automatique | Fournit des outils pour mettre en œuvre des fonctions d’apprentissage automatique dans les applications, accessibles aux développeurs de tous niveaux. |
8 | Génère du trafic vers les applications | Prise en charge de l’indexation des applications et amélioration du classement des applications dans Google Search, ce qui accroît la visibilité des applications et l’acquisition d’utilisateurs. |
9 | Surveillance des erreurs | Inclut Crashlytics pour le suivi et la résolution des erreurs en temps réel, améliorant ainsi la stabilité de l’application et l’expérience de l’utilisateur. |
10 | Sécurité et sauvegardes | Garantit la sécurité et la disponibilité des données grâce à des fonctionnalités telles que des sauvegardes régulières et un traitement sécurisé des données. |
Vous voulez en savoir plus ? Voir les détails ci-dessous :
1. Libre de commencer
Firebase est gratuit et permet aux utilisateurs de se connecter avec leur compte Google.(7)
Le plan Spark gratuit offre de nombreuses fonctionnalités pour aider les développeurs à démarrer. En fonction de leurs besoins croissants, ils peuvent ensuite opter pour le plan Blaze.
Démarrer sans frais est une bonne option offerte par Firebase et l’une des raisons de sa popularité. L’offre Spark comporte des limites généreuses en termes de nombre de lectures et d’écritures de la base de données.
L’autre avantage est que le plan Blaze prend en compte les limites gratuites initiales.
Par exemple, vous hébergez 20 Go de stockage avec le plan Blaze. La limite gratuite couvre 10 Go, ce qui signifie que Firebase ne vous facturera que 10 Go pour l’utilisation supplémentaire.
2. Vitesse de développement
Firebase est une option de développement d’applications appropriée qui peut aider les développeurs à réduire considérablement le temps de mise sur le marché des applications.
En général, chaque développeur a besoin d’accéder au serveur et à l’hôte pour la création et la maintenance de la base de données et des services dorsaux.
Il est donc nécessaire de disposer d’un développeur backend et d’un développeur frontend pour créer des applications. C’est vrai même pour les petites applications où le backend et le frontend doivent coopérer à différents stades.
Le fait d’avoir des développeurs frontend et backend peut souvent entraîner des erreurs et des problèmes qui peuvent causer des problèmes d’application, augmentant ainsi les coûts de développement et la complexité.
Cependant, l’utilisation de Firebase permet aux développeurs frontaux de gérer l’ensemble du travail et de réduire le temps nécessaire à l’achèvement. Tout cela grâce à des services prêts à l’emploi pour le stockage des données, l’authentification, les notifications, l’analyse, etc.
En outre, Firebase fournit de nombreux services prêts à l’emploi qui évitent au développeur de créer un code standard, de réinventer la roue et de recommencer un backend depuis le début.
Grâce à ses SDK de haute qualité, à sa documentation détaillée et à sa communauté dynamique, les développeurs frontaux n’auront pas beaucoup de problèmes à intégrer Firebase dans leur base de code.
3. Plate-forme tout-en-un (grand nombre de services)
Firebase offre également aux développeurs une liste complète de produits pour les aider dans le processus de développement.
Tout d’abord, deux options de base de données sont Firestore et la base de données en temps réel de Firebase. De même, Firebase vous permet d’effectuer un stockage de médias dans le cloud sans effort et permet le développement d’applications sans serveur grâce aux fonctions cloud intégrées.
Firebase couvre l’ensemble du cycle de développement des applications, et la plateforme contient des fonctionnalités permettant de créer, de publier et de contrôler les applications.
En outre, en tant que dernière étape du cycle de développement de l’application, il fournit des outils pour impliquer les utilisateurs et les inciter à continuer à utiliser l’application.
4. Propulsé par Google
Firebase est alimenté par Google, l’un des noms les plus connus et les plus fiables dans le monde de la technologie.
Depuis son acquisition, Firebase a connu une série de changements et de développements pour devenir la plateforme fiable qu’elle est aujourd’hui. Elle exploite la puissance de Google Cloud et de nombreux services de Google.
Firebase fait désormais partie de Google Cloud Platform, s’harmonise parfaitement avec les autres services Google Cloud et s’intègre à de nombreux services tiers.(8, 9)
Depuis l’acquisition de Firebase, Google a investi massivement dans la plateforme et a fourni un produit plus robuste.
5. Se concentrer sur le développement de l’interface utilisateur
Les développeurs du monde entier préfèrent Firebase car il leur permet de se concentrer sur la création de code frontal pour les applications mobiles.
Firebase réduit la nécessité de développer un code backend standard, ce qui repousse la date d’achèvement du développement de l’application.
Firebase facilite le développement d’applications et contribue à réduire les coûts.
L’utilisation de Firebase permet également aux développeurs et aux entreprises de standardiser l’environnement backend sous une technologie unique et facile à apprendre.
Un modèle de backend réduit la formation requise pour le prendre en charge et permet aux développeurs axés sur le frontend d’effectuer la plupart des activités.
6. Il est sans serveur
La mise à l’échelle des serveurs n’est pas une tâche facile ! En particulier, la mise à l’échelle d’un cluster de base de données est un défi, et l’optimisation des performances pour d’énormes charges de travail nécessite des ingénieurs expérimentés.
Firebase résout ce problème et fournit un environnement entièrement sans serveur.
Firebase est livré avec une architecture sans serveur qui exige que les utilisateurs paient en fonction des demandes, et il n’est pas nécessaire de gérer ou de s’inquiéter de l’infrastructure du serveur. C’est différent d’un serveur conventionnel, qui doit toujours rester fonctionnel.
Les utilisateurs de Firebase ne sont facturés que lorsque le serveur est utilisé en raison de sa nature sans serveur. Par conséquent, il y a moins de préoccupations liées à la mise à l’échelle en raison d’une meilleure efficacité.
Les développeurs sont libres d’adopter une approche pratique de la gestion de DevOps, de la configuration, de l’infrastructure et de la planification de la capacité.
7. L’apprentissage automatique
L’apprentissage automatique est sur le point de remodeler le secteur des technologies de l’information. À bien des égards, il a déjà commencé.
Selon Gartner, 30 % des entreprises utiliseront la ML dans une partie de leurs processus.(10)
Firebase est également avantageux car il permet aux développeurs de s’appuyer sur l’apprentissage automatique.
ML peut être utilisé par les développeurs iOS et Android, quel que soit leur niveau d’expérience.
Firebase dispose d’un kit ML avec des API facilement disponibles pour différentes fonctionnalités de plate-forme mobile telles que l’identification de texte, la détection de visage, l’étiquetage d’images, la lecture de codes-barres, etc.
Les développeurs peuvent opter pour des API en nuage ou sur appareil en fonction des exigences de développement de l’application.
8. Générer du trafic
Firebase facilite l’indexation des applications pour permettre aux utilisateurs de réengager les utilisateurs de Google Search en fournissant des liens vers les applications sur Search.(11)
Le classement des applications peut également être amélioré dans le moteur de recherche en indexant une application, ce qui permet à votre application de se faire connaître auprès de nouveaux utilisateurs qui peuvent l’installer.
Les développeurs peuvent s’appuyer sur l’application instantanée Android, qui peut être utilisée pour accéder au contenu de l’application.
9. Erreurs du moniteur
La fonction Crashlytics de Firebase est un outil fantastique pour trouver et résoudre rapidement les problèmes. Firebase peut surveiller les erreurs fatales et non fatales, et des rapports sont générés en fonction de la façon dont les erreurs affectent l’expérience de l’utilisateur.(12)
10. Sauvegardes
Firebase assure une sécurité et une disponibilité optimales des données grâce à des sauvegardes régulières.(13)
Les applications sont protégées contre la perte de données grâce à la fonction de sauvegarde automatique de cette plateforme.
Les utilisateurs du plan Blaze peuvent facilement configurer la base de données en temps réel pour qu’elle prenne des sauvegardes automatiques. En cliquant sur l’onglet Sauvegardes de la base de données Firebase, on accède aux paramètres de sauvegarde automatique.
Limites de Firebase
Numéro de limitation | Limitation | Description |
---|---|---|
1 | Pas de code source ouvert | Firebase n’est pas une plateforme open-source, ce qui limite les possibilités de personnalisation et de modification pour les développeurs. |
2 | Verrouillage des vendeurs | L’utilisation de Firebase peut entraîner une dépendance à l’égard de cette plateforme spécifique, ce qui rend difficile le passage à d’autres services sans changements significatifs. |
3 | Restrictions géographiques | Les services Firebase, qui font partie de Google, ne sont pas accessibles dans les pays où les services Google sont bloqués, comme la Chine. |
4 | Uniquement les bases de données NoSQL | Firebase ne prend en charge que les bases de données NoSQL, ce qui peut ne pas convenir à tous les types d’applications, en particulier celles qui nécessitent des requêtes et des transactions complexes. |
5 | Requêtes lentes | Certains services Firebase, comme Firestore, peuvent présenter des limites en termes de performances des requêtes, en particulier pour les applications à grande échelle. |
6 | Complexité de la tarification | La tarification de Firebase peut être imprévisible et difficile à prévoir, en particulier pour les applications dont l’utilisation est variable. |
7 | Limité à Google Cloud | Firebase fonctionne exclusivement sur Google Cloud, n’offrant aucune flexibilité pour l’hébergement sur d’autres plateformes cloud. |
8 | Manque de serveurs dédiés | Firebase ne propose pas d’options de serveurs dédiés ou de contrats d’entreprise, ce qui peut limiter les performances et la personnalisation des applications les plus importantes. |
9 | Pas d’API GraphQL | Firebase ne prend pas en charge les API GraphQL de manière native ; les développeurs doivent mettre en œuvre des solutions de contournement pour utiliser GraphQL. |
10 | Complexité et courbe d’apprentissage | L’ensemble des fonctionnalités de Firebase peut entraîner une courbe d’apprentissage abrupte, en particulier pour les développeurs qui débutent dans le développement d’applications basées sur le cloud. En outre, la gestion et l’optimisation des services Firebase pour contrôler les coûts et les performances peuvent s’avérer complexes. |
Nous allons explorer les limites de Firebase plus en détail ci-dessous :
1. Il ne s’agit pas d’un logiciel libre
Firebase n’est pas une option open-source pour le développement d’applications mobiles, ce qui en fait une option sous-optimale pour de nombreux développeurs.
Les utilisateurs ne peuvent pas modifier le code source de Firebase en raison de son caractère fermé. En raison de cette limitation, de nombreux développeurs qui apprécient les fonctionnalités de Firebase finissent par utiliser d’autres plateformes.
Bien que la plateforme ne soit pas open-source, il est important de souligner que de nombreuses bibliothèques et SDK sont disponibles sur GitHub.(14)
Il s’agit peut-être de la limitation la plus importante de Firebase, qui empêche la communauté d’améliorer le produit, d’augmenter les niveaux de flexibilité et de proposer des options d’auto-hébergement aux développeurs qui n’ont pas les moyens de payer le prix de Firebase.
Veuillez vous référer à l’article Firebase Open-Source Alternatives pour les options qui ne fonctionnent pas avec des technologies propriétaires.
2. Verrouillage des vendeurs
Un autre obstacle majeur à l’utilisation de Firebase est le fait qu’il est verrouillé par le fournisseur.
C’est un problème important qui empêche certains développeurs d’opter pour la plateforme. Le fait de ne pas avoir accès au code source peut s’avérer assez délicat pour certains développeurs.
En particulier, pour les applications de grande envergure, il n’est pas facile de passer à d’autres fournisseurs et, pour ce faire, il faudrait reconstruire l’ensemble du backend à partir de zéro.
3. Firebase ne fonctionne pas dans de nombreux pays
Firebase est un sous-domaine de Google, et le site officiel est https://firebase.google.com. Il est bloqué dans de nombreux pays.
Google est bloqué et inaccessible dans des pays comme la Chine, ainsi que d’autres services Google, car la Chine a bloqué les URI avec *.google.com et *.googleapis.com.
Pour une liste complète des pays, veuillez vous référer au rapport de transparence.(15)
Pour découvrir la meilleure façon d’héberger une application en Chine, lisez l’article Alternatives to Firebase in China.
4. Fonctionne uniquement avec les bases de données NoSQL
Les deux options de base de données de Firebase, Firestore et Firebase Realtime Database, offrent une structure NoSQL, et il n’y a pas d’option pour utiliser une base de données relationnelle.(16, 17)
- Requêtes complexes
Un autre défi auquel les utilisateurs sont confrontés avec les bases de données NoSQL est la mise en œuvre de requêtes complexes.
Bien que Firebase ait apporté des améliorations significatives à Cloud Firestore par rapport à RTDB, l’exécution de requêtes complexes reste un défi pour certains utilisateurs.
L’exemple ci-dessus, extrait de StackOverflow, décrit les difficultés rencontrées par un utilisateur qui passe de Parse à Firebase.(18)
Des exemples de problèmes rencontrés par l’utilisateur sont liés au filtrage, à la combinaison de filtres et à la combinaison de plusieurs requêtes.
Bien qu’il existe une solution à cette situation et qu’un utilisateur puisse créer des objets complexes avec Firebase, la mise en œuvre peut ne pas être simple pour un débutant utilisant la plateforme.
- Transactions
Un fil de discussion intéressant sur StackOverflow traite de la façon dont Firebase Realtime Database gère les propriétés ACID.(19)
Même si elle prend en charge les transactions, les développeurs devront exécuter leur code, contrairement à une base de données relationnelle traditionnelle, ce qui rendra leurs systèmes plus complexes.(20)
- La migration des données n’est pas aussi simple que l’utilisation d’une base de données SQL.
Selon l’article 5 Reasons Not to Use Firebase, avec Firebase, un utilisateur ne peut pas gérer rapidement la migration des données comme avec une simple base de données SQL.
Firebase utilise JSON, et il n’y a pratiquement pas de fonctions SQL, donc la migration depuis la base de données ne sera pas aussi facile.
5. Requêtes lentes
Toutes les bases de données ne sont pas idéales pour tous les cas d’utilisation, et Cloud Firestore ne fait pas exception.
Bien qu’il s’agisse d’une solution fantastique pour faire évoluer vos applications et fournir une prise en charge des requêtes hors ligne et des mises à jour en temps réel, elle présente également des limites.(21).
En voici quelques exemples :
- La fréquence d’écriture est limitée à 1 par seconde ;
- Il n’y a pas de requête d’agrégation native ;
- Taille maximale de la requête API 10 MiB ;
- La taille du document est limitée à 1 MiB ;
- Maximum de connexions simultanées 1M ;
- Flexibilité des requêtes ;
- Les requêtes ralentissent les performances.
Il y a deux excellents articles à lire pour en savoir plus sur les limitations de Firestore. Le premier article concerne les 10 principales choses à savoir sur Firestore lors du choix d’une base de données pour votre application, et le second, Pourquoi ma requête Cloud Firestore est-elle lente ?
6. Le démarrage des services Firebase n’est pas toujours gratuit
Bien que la plupart des services soient disponibles dans le cadre du Plan Spark, cette règle comporte quelques exceptions. Il s’agit par exemple des fonctions cloud et de l’apprentissage automatique.(7)
Les fonctions cloud ne sont disponibles que dans le cadre du plan Blaze, et un utilisateur ne peut pas essayer le service dans le cadre du plan Spark.
Il est important de souligner qu’il existe un quota gratuit pour les fonctions cloud, mais que des frais seront facturés dans le cadre du plan Blaze lorsque l’utilisateur dépassera la limite gratuite.
Les API Cloud Vision dans le cadre de la fonction Machine Learning sont le deuxième exemple de service non disponible dans le cadre du plan Spark. Ce service n’est disponible que pour les utilisateurs du plan Blaze et est facturé 1,5 $/k API.
7. Il est cher et son prix est difficile à prévoir
Firebase est une plateforme de développement d’applications mobiles riche en fonctionnalités et coûteuse pour certains. Elle propose un plan gratuit, mais celui-ci est assorti de certaines restrictions.
C’est la raison pour laquelle de nombreux développeurs finissent par se contenter d’applications auto-hébergées avec des options telles que Digital Ocean, AWS ou Google Cloud.
Firebase apporte une valeur ajoutée par rapport à un fournisseur IaaS pur, mais cette commodité a un prix. En règle générale, l’auto-hébergement d’une application sera moins coûteux que l’utilisation de Firebase.(22)
Ainsi, avant d’opter pour Firebase, assurez-vous de comparer correctement les coûts initiaux de mise en place d’un cluster chez un fournisseur IaaS et les coûts permanents (serveurs + coûts d’ingénierie supplémentaires) de maintenance des serveurs par rapport à l’exécution de l’application directement sur Firebase.
L’autre aspect qui rend Firebase cher est qu’il s’agit d’une technologie propriétaire, qui nécessite un retour sur l’investissement en ingénierie. En revanche, les technologies à code source ouvert peuvent utiliser la puissance du développement communautaire et fournir des solutions plus abordables.
Firebase fournit des services dans le cadre d’un modèle de tarification basé sur l’utilisation, et il est difficile de plafonner les prix. La plateforme n’a pas de plan de tarification fixe, et le suivi de l’utilisation des ressources peut s’avérer fastidieux.
L’estimation des coûts de Firebase peut s’avérer difficile pour certains utilisateurs, en particulier lorsque les exigences d’évolutivité ne peuvent être prédites. La tarification est compliquée, et Firebase a une tarification spécifique pour chaque fonctionnalité.
Maintenir les coûts en dessous d’un certain seuil peut s’avérer très difficile avec la plateforme, et il n’y a pas de moyen facile de plafonner ou d’imposer des limites strictes à la facture.
Cela dit, il existe des moyens de fixer des budgets, des alertes d’utilisation et même de plafonner explicitement le nombre de requêtes, grâce à l’intégration de Google Cloud. Cependant, ces solutions nécessitent d’aller au-delà de Firebase et sont un peu complexes à mettre en place.
Pour gérer au mieux vos dépenses, vous devez utiliser les fonctionnalités de Firebase de manière optimale. Il s’agit par exemple d’optimiser votre code Cloud Function pour des durées d’exécution plus rapides et de choisir correctement entre RTDB et Firestore. Par exemple, utilisez RTDB pour gérer des données de petite taille mais à haut débit et Firestore pour des ensembles de données plus importants ou lorsque des requêtes complexes sont nécessaires.
Dans le passé, Firebase proposait le plan Flame. Il s’agissait d’un plan à prix fixe de 25 $/mois, qui a été supprimé en janvier 2020.(23, 24)
Le changement de la structure tarifaire a causé des désagréments à certains utilisateurs, et le passage au paiement à l’utilisation a augmenté les frais dans certaines situations. Pour en savoir plus sur ce sujet, veuillez lire l’article Les coûts de Firebase ont augmenté de 7 000 % !
Notez qu’une structure basée sur l’utilisation n’est pas nécessairement mauvaise ! La plupart des fournisseurs IaaS comme AWS ou Azure utilisent également ce principe.
L’aspect positif est qu’il vous facturera exactement les ressources que vous consommez et vous offrira une plus grande granularité.
Assurez-vous de bien comprendre le fonctionnement de la facturation avant de vous engager dans ce modèle et surveillez régulièrement vos coûts afin d’éviter des frais inattendus à la fin du mois.
8. Fonctionne uniquement sur Google Cloud
Firebase fait désormais partie de Google et son infrastructure fonctionne entièrement sur Google Cloud.(25)
Il n’y a pas d’option pour exécuter Firebase sur d’autres fournisseurs de cloud comme AWS, Azure ou Digital Ocean.
Firebase limite le niveau de flexibilité en termes d’options d’hébergement. Firebase n’offre pas d’accès au niveau du serveur, et des problèmes peuvent survenir s’il est nécessaire de personnaliser les paramètres du serveur.
9. Absence de serveurs dédiés et de contrats d’entreprise
Les utilisateurs de Firebase n’ont pas la possibilité d’opter pour des serveurs dédiés ou des contrats d’entreprise.(23)
Le fait de ne pas fournir de serveurs dédiés est une limitation importante. La seule façon d’utiliser Firebase est sur une structure sans serveur qui offre moins de flexibilité qu’une structure de cluster entièrement dédiée.
En outre, le partage des ressources peut ne pas offrir des performances optimales en raison de voisins bruyants.
Un environnement sans serveur est une excellente option pour les apps dont la charge de travail fluctue dans le temps – par exemple, des pics et des creux au cours de la journée ou de la semaine.
Imaginez une application de réservation de restaurant ; un environnement sans serveur fonctionnera parfaitement pour cette application car il garantira que toutes les ressources du serveur sont allouées automatiquement pendant les périodes de pointe du vendredi/samedi soir.
D’autre part, les charges de travail de plusieurs applications ne fluctueront pas beaucoup mais peuvent nécessiter des paramètres de sécurité sur mesure ou un accès au niveau du serveur. Une structure sans serveur ne sera pas adaptée à ce scénario, et l’hébergement dédié est une option plus appropriée.
Firebase ne propose pas de plans tarifaires, de contrats ou d’assistance pour les entreprises, ce qui constitue un problème important pour de nombreux utilisateurs potentiels. Cependant, le plan Blaze peut être considéré comme une option convenable pour les développeurs ayant des besoins au niveau de l’entreprise.
10. Ne fournit pas d’API GraphQL
Firebase ne fournit pas d’API GraphQL dans le cadre de la configuration standard. Bien qu’il existe des solutions de contournement pour la mise en œuvre de GraphQL avec Firebase, REST reste l’option par défaut de la plateforme.
Pour en savoir plus sur GraphQL et Firebase, consultez cette question sur StackOverflow.(26)
Prix de Firebase
Firebase propose à ses utilisateurs un plan gratuit et basé sur l’utilisation. Cependant, les utilisateurs ne disposent pas d’un plan fixe et uniforme pour démarrer.(7)
Plan | Description |
Spark (Plan gratuit) | Le plan Spark de Firebase est gratuit, avec 10 Go d’hébergement, SSL, plusieurs sites web, un domaine personnalisé et plusieurs autres offres. Il propose des fonctionnalités intéressantes telles que Firebase ML, Realtime Database, Cloud Firestore et Test Lab. Il s’agit de quelques options dont on peut bénéficier avec le Firebase Spark Plan. |
Blaze (Payez au fur et à mesure) | Le plan Blaze de Firebase est disponible dans le cadre d’un modèle de tarification flexible avec paiement au fur et à mesure. Il comprend toutes les fonctionnalités du plan Spark ainsi que des fonctionnalités supplémentaires pour améliorer l’expérience de développement. Avec ce plan, les utilisateurs doivent payer 0,026 $/GB pour l’hébergement et la même chose pour chaque GB de stockage. De nombreuses restrictions du plan Spark sont levées avec le plan Firebase Blaze. Le calculateur Blaze Plan disponible sur le site web de Firebase peut être un outil pratique pour calculer les coûts estimés. |
Le plan gratuit comporte certaines restrictions et, par exemple, ne permet pas aux développeurs d’accéder aux fonctions du nuage.
Blaze est le plan de tarification à la carte avec des prix segmentés pour différents ensembles de fonctionnalités, c’est-à-dire Cloud Firestore, Cloud Functions, Authentication, Hosting, Firebase ML, Realtime Database, et Storage.
- Services Firebase toujours gratuits
Firebase est généreux avec sa gamme de services toujours gratuits qui aident de nombreux développeurs à démarrer leurs projets de développement d’applications.
Ces services peuvent être gratuits, quel que soit le plan choisi. Considérez les différents services proposés sur la plateforme comme “toujours gratuits”.
- Livraison d’applications pour les testeurs.
- Indexation des applications pour permettre aux moteurs de recherche d’indexer les applications
- Différents déploiements de versions d’applications spécifiques à l’utilisateur pour les tests A/B
- Prédiction des performances de l’application et rapports
- Interaction active avec les clients de l’application grâce à la messagerie intégrée
- Notifications automatiques et messagerie utilisateur sur Android, iOS et les applications web avec Firebase Cloud messages.
- Surveillance des performances des applications Firebase
- Détection des pannes d’application avec Firebase Crashlytics
- Redirection des utilisateurs sur différentes plateformes à l’aide de liens dynamiques
- Personnalisation des fonctions de l’application à distance
- Les composants Firebase Machine Learning permettent de faire des prédictions pour informer les utilisateurs des applications qui reviennent.
- Services payants de Firebase
L’onglet Utilisation de la console Firebase permet de vérifier l’état des paiements et les données relatives à l’utilisation des différents services Firebase.
- Onglet Stockage –L’onglet Stockage indique la quantité totale de données dans une base de données, à l’exception des données stockées dans d’autres offres Firebase.
- Onglet Connexions –L’onglet Connexions contient des informations sur le nombre total de connexions en temps réel, y compris les WebSockets.
- Onglet Charge –Cet onglet contient des représentations graphiques de la charge des applications et présente ces données aux utilisateurs dans un laps de temps déterminé.
- Onglet Téléchargements –Il contient des informations sur le volume total de données téléchargées à partir d’une base de données.
Pour plus d’informations sur la tarification de Firebase, veuillez lire Google Firebase Pricing for Dummies.
Firebase Privacy
La politique de confidentialité de Firebase est conforme au règlement général sur la protection des données de l’Union européenne (GDRP) et à la loi californienne sur la protection de la vie privée des consommateurs (CCPA). Firebase est également conforme à plusieurs certifications ISO et SOC, notamment 27001, 27017, 27018, SOC1, SOC2 et SOC3.
Firebase transmet à Google les données relatives aux services non-Firebase. Cette option est sélectionnée par défaut ; les utilisateurs doivent décocher la case pour l’éviter.
Caractéristiques de Firebase
Firebase dispose d’un large éventail de fonctionnalités avancées pour répondre aux besoins des développeurs.(27)
Les fonctionnalités sont classées en trois catégories : Build, Release & Monitor et Engage. Firebase est utilisé comme backend à différents stades du développement d’une application mobile.
Fonctionnalité de Firebase | Catégorie | Description |
---|---|---|
Firestore | Construire | Une base de données NoSQL basée sur le cloud pour le stockage et la synchronisation des données. |
Base de données en temps réel | Construire | Base de données hébergée dans le nuage permettant la synchronisation des données en temps réel entre les plateformes. |
Configuration à distance | Construire, diffuser, engager | Modifier le comportement et l’apparence de l’application sans déployer de nouvelles versions. |
Extensions Firebase | Construire | Ensemble de solutions prêtes à l’emploi pour étendre les fonctionnalités de Firebase. |
App Check | Construire | Permet de protéger vos ressources de backend contre les abus, tels que la fraude à la facturation ou l’hameçonnage. |
Fonctions en nuage | Construire | Cadre sans serveur pour exécuter le code du backend en réponse à des événements. |
Authentification | Construire, Engager | Permet l’authentification et la gestion des utilisateurs à l’aide de différentes méthodes. |
Messagerie en nuage | Construire, Engager | Service permettant de transmettre des messages de manière fiable entre les plates-formes. |
Hébergement | Construire | Propose un hébergement web avec un déploiement rapide et une livraison sécurisée. |
Stockage en nuage | Construire | Solution de stockage de fichiers dans le nuage avec de solides contrôles d’accès aux données. |
Firebase ML | Construire | Intègre l’apprentissage automatique dans vos applications avec un minimum d’expertise. |
Crashlytics | Libérer, engager | Outil de signalement des pannes en temps réel qui permet de suivre, de hiérarchiser et de résoudre les problèmes de stabilité. |
Google Analytics | Libération | Fournit des informations détaillées sur l’utilisation de l’application et l’engagement des utilisateurs. |
Suivi des performances | Libération | Surveille les performances de l’application afin d’identifier et de résoudre rapidement les problèmes. |
Laboratoire d’essai | Libération | Tests d’applications dans le nuage sur des appareils réels et virtuels. |
Distribution des applications | Libération | Gère la distribution des versions bêta de votre application. |
Tests A/B | S’engager | Mener des expériences pour améliorer l’application grâce à des expériences utilisateur contrôlées. |
Messagerie en nuage | S’engager | Engage les utilisateurs avec des messages ciblés et pertinents en fonction du contexte. |
Messagerie In-App | S’engager | Envoi de messages pour engager activement les utilisateurs pendant qu’ils utilisent l’application. |
Examinons plus en détail chacune de ces caractéristiques.
Bases de données – Firestore et la base de données en temps réel
Les deux bases de données de la plateforme Firebase sont Cloud Firestore et Realtime Database, deux outils précieux pour le développement d’applications modernes.
Cloud Firestore, également connu sous le nom de Google Firestore, est un composant de la plateforme de développement d’applications mobiles Firebase.
Il s’agit fondamentalement d’une base de données NoSQL basée sur le cloud pour le stockage et la synchronisation des données. Les utilisateurs de Firebase peuvent accéder à Firestore à partir d’applications mobiles ou web via des SDK natifs.
Cloud Firestore peut être utilisé avec différents langages de programmation tels que Unity, C++, Java, Node.js SDK, REST API et RPC. La base de données Firestore de Firebase est conçue pour offrir des performances optimales, une fiabilité, une mise à l’échelle automatique et une facilité d’utilisation de référence.
Pour en savoir plus sur Firestore, veuillez lire l’article Qu’est-ce que Google Firestore.(28)
Firebase Realtime Database est une base de données hébergée dans le nuage. Elle facilite le stockage de données basées sur JSON et effectue une synchronisation des données en temps réel avec les clients connectés.
Les instances uniques de la base de données en temps réel fonctionnent comme des clients au cours des processus de développement d’applications multiplateformes à l’aide des SDK iOS, JavaScript et Android.
Il permet aux applications de recevoir les dernières mises à jour et données. Les applications hors ligne peuvent rester réactives car le SDK de base de données assure la persistance des données sur disque. Il permet de synchroniser les appareils avec les états actuels du serveur après le rétablissement de la connectivité.(29)
Pour en savoir plus sur les différences entre Cloud Firestore et The Realtime Database, veuillez lire l’article Firestore vs. Realtime Database.
- Configuration à distance
Remote Config est une solution en nuage qui permet aux utilisateurs de modifier le comportement et l’apparence des applications sans les mettre à jour.
Les utilisateurs peuvent également créer des valeurs par défaut dans l’application pour le comportement de l’application et la maintenance de l’apparence.(41)
- Extensions Firebase
Les extensions Firebase sont des solutions pré-packagées qui aident à rationaliser le processus de développement en automatisant les tâches quotidiennes.
Il s’agit essentiellement d’ensembles de codes configurables et déployables qui s’intègrent de manière transparente à Firebase et à d’autres services Google Cloud.
Les développeurs peuvent utiliser ces extensions pour diverses fonctionnalités, telles que le redimensionnement d’images, le déclenchement d’e-mails ou la synchronisation avec des services tiers. Elles réduisent la nécessité d’écrire du code standard, ce qui accélère le développement des projets.
En simplifiant les opérations complexes, Firebase Extensions permet aux développeurs de se concentrer davantage sur la création de fonctionnalités applicatives uniques, améliorant ainsi l’efficacité et la productivité du cycle de développement des applications.
- Vérification de l’application Firebase
Firebase App Check est une fonction de sécurité conçue pour protéger les ressources du backend Firebase contre le trafic frauduleux et nuisible.
Il vérifie que les requêtes entrantes vers vos services Firebase proviennent bien de votre application authentique et de confiance.
App Check y parvient en utilisant des attestations d’application, des jetons numériques qui confirment la légitimité de l’application à l’origine de la demande.
En intégrant App Check, les développeurs peuvent prévenir efficacement les accès non autorisés et les abus, tels que la fraude à la facturation ou la récupération non autorisée de données, améliorant ainsi la sécurité globale de leur implémentation Firebase.
- Fonctions en nuage
Firebase Cloud Functions fait référence à un framework sans serveur qui permet aux développeurs d’exécuter du code backend pour répondre aux événements HTTPS et aux événements déclenchés par les fonctionnalités Firebase.
Google Cloud stocke le code TypeScript ou JavaScript et peut être exécuté dans un environnement géré.(31)
Elles réduisent les besoins en matière de mise à l’échelle et de gestion des serveurs. Pour plus d’informations sur les fonctions cloud, veuillez lire l’article Qu’est-ce que les fonctions cloud de Firebase ?
- Authentification
L’authentification est une fonctionnalité de Firebase qui offre des bibliothèques d’interface utilisateur prêtes à l’emploi, des backends et des SDK pratiques pour l’authentification des applications utilisateur.
L’authentification est assurée par des numéros de téléphone, des mots de passe et des fournisseurs tels que Google, Twitter et Facebook.(32)
L’authentification bénéficie d’une intégration avec différents services Firebase, et elle utilise OpenID Connect et OAuth 2.0 et permet une intégration backend personnalisée.
Pour plus d’informations sur l’authentification Firebase, veuillez lire l’article Qu’est-ce que l’authentification Firebase ?
- Messagerie en nuage
Firebase Cloud Messaging ou FCM fait référence à un service de messagerie multiplateforme pour une messagerie gratuite. Cette fonctionnalité permet aux propriétaires d’applications de notifier aux applications clientes si et quand des données ou des courriels doivent être synchronisés.(33)
Le FCM permet aux propriétaires d’applications d’envoyer des notifications pour fidéliser les utilisateurs et les inciter à s’engager. Cloud Messaging facilite les transferts de charge utile jusqu’à 4 kb pour les cas de messagerie instantanée.
Pour plus d’informations sur FCM, veuillez lire l’article Qu’est-ce que Firebase Cloud Messaging ?
- Hébergement
Firebase dispose de diverses fonctionnalités d’hébergement évolutives et agiles pour les microservices, les applications web et plusieurs autres types de contenu.
Le contenu peut être hébergé dans différentes catégories, et les utilisateurs peuvent bénéficier de la protection SSL et des retours en arrière en un seul clic.(34)
Pour plus d’informations sur l’hébergement Web Firebase, veuillez lire l’article Qu’est-ce que l’hébergement Firebase ?
- Stockage en nuage
La fonction de stockage dans le nuage de Firebase est un service permettant de stocker les ressources de développement d’applications, y compris les objets.
Cette fonctionnalité permet aux utilisateurs de bénéficier d’une sécurité de niveau Google en matière de téléchargement et de chargement, ce qui convient au stockage de fichiers multimédias et de contenus d’utilisateurs.(35)
Pour en savoir plus sur Firebase Storage, veuillez lire l’article Firebase Storage.
- Apprentissage automatique
Firebase ML est un SDK mobile qui exploite la puissance de l’apprentissage automatique de Google et la met en œuvre dans les applications iOS et Android grâce à un package pratique.(30)
L’utilisation des fonctionnalités d’apprentissage automatique avec Firebase ML convient à tout le monde, quel que soit le niveau d’expérience.
Vous n’avez pas besoin de connaissances approfondies en matière d’optimisation de modèles ou de réseaux neuronaux. Les développeurs chevronnés peuvent utiliser les API du kit Firebase ML pour utiliser des applications mobiles telles que les modèles TensorFlow Lite.
Pour plus d’informations sur Firebase ML, veuillez lire l’article Qu’est-ce que Firebase Machine Learning ?
- Crashlytics
Crashlytics est le rapporteur de crash en temps réel de Firebase qui permet aux développeurs de suivre, de prioriser et de traiter les problèmes. La fonctionnalité Crashlytics peut être utilisée pour prévenir d’éventuels problèmes de stabilité.(36)
Pour en savoir plus sur cet outil, veuillez lire l’article Qu’est-ce que Crashlytics.
- Google Analytics
Google Analytics est un outil d’analyse avancé qui offre des informations détaillées sur l’utilisation des applications et l’engagement des utilisateurs.
Intégré de manière transparente à Firebase, il permet aux développeurs de suivre le comportement des utilisateurs, de mesurer les performances des applications et d’Parse les données pour prendre des décisions éclairées.
Cette intégration permet de capturer des données riches et basées sur des événements à partir de vos applications Firebase, offrant ainsi une vue complète de la façon dont les utilisateurs interagissent avec votre application.
Il permet de comprendre les caractéristiques démographiques des utilisateurs, les schémas d’utilisation des applications et d’autres indicateurs clés de performance.
En tirant parti de la puissance combinée de Firebase et de Google Analytics, les développeurs peuvent adapter leurs applications pour mieux répondre aux besoins des utilisateurs, optimiser l’expérience utilisateur et mettre en place des stratégies de marketing efficaces, le tout grâce à une interface d’analyse unifiée.
- Suivi des performances
Firebase Performance Monitoring est un service qui vous aide à mieux comprendre les caractéristiques de performance de vos applications iOS, Android et Web.(38)
Vous utilisez le SDK de surveillance des performances pour collecter des données sur les performances de votre application. Il permet de comprendre où et quand les performances de votre application peuvent être améliorées, afin que vous puissiez utiliser ces informations pour résoudre les problèmes de performances.
- Laboratoire d’essai
Firebase Test Lab est une infrastructure en nuage pour les tests d’applications. Elle permet aux utilisateurs de tester leurs applications iOS et Android avec une opération sur de nombreux appareils et configurations.(39)
Les utilisateurs peuvent également voir les résultats dans la console Firebase, y compris les captures d’écran, les journaux et les vidéos.
- Distribution des applications
Firebase App Distribution est une fonctionnalité qui offre une vue d’ensemble du programme de bêta-test d’un utilisateur sur les plateformes Android et iOS. Les utilisateurs peuvent recevoir des commentaires utiles avant la phase de production d’une nouvelle version.(40)
Un utilisateur peut envoyer des versions préliminaires d’applications à l’aide de serveurs CI ou d’une console. Les installations d’applications deviennent également plus accessibles pour les testeurs.
- Tests A/B
Le test A/B est une fonctionnalité de Firebase qui aide les développeurs à offrir de meilleures expériences aux utilisateurs d’applications en améliorant la gestion, la mise à l’échelle et l’analyse des applications.
Les utilisateurs peuvent rapidement tester les modifications apportées aux interfaces utilisateur, aux fonctionnalités et aux campagnes avant le lancement de l’application.(43)
- Messagerie In-App
In-App Messaging est une fonctionnalité de Firebase qui permet d’engager les utilisateurs actifs d’une application à l’aide d’une messagerie contextuelle. Les utilisateurs peuvent effectuer des actions spécifiques dans l’application pour accéder à différentes fonctionnalités ou débloquer certaines offres.(45)
Alternatives à Firebase
Bien que Firebase soit une excellente plateforme pour le développement d’applications, de nombreuses alternatives sont tout aussi remarquables. Si vous recherchez une alternative à Firebase en 2024, voici les options que nous recommandons.
Alternative | Catégorie | Caractéristiques principales | Tarification |
---|---|---|---|
Back4App | Open-source, Low-code | Modèle de données, API GraphQL/REST, fonctions sans serveur | Gratuit, Serverless à partir de 25 $/mois |
Parse | Cadre libre | Tableau de bord convivial, API, adaptateurs de stockage d’objets | Téléchargement gratuit |
AWS Amplify | Développement complet | Magasin de données, Authentification, Analyse, APIs | Niveau gratuit, paiement à l’utilisation |
Backendless | Développement d’applications visuelles | App builder, API, Bases de données en temps réel | Niveau gratuit, à partir de 15 $/mois |
Kuzzle | IoT et Backend | Suite IoT, Backend, PaaS | Gratuit, plans d’assistance à partir de 500 €/mois |
Supabase | Source ouverte | Base de données, tableau de bord, authentification | Niveau gratuit, à partir de 25 $/mois |
Appwrite | Serveur Open-source | Base de données, stockage, géo, fonctions | Démarrage gratuit, à partir de 15 $/membre/mois |
Ably | Infrastructure en temps réel | Canaux PubSub, environnements multi-utilisateurs | Niveau gratuit, paiement à l’utilisation |
Hasura | Moteur GraphQL | API GraphQL, mise en cache, sécurité | Niveau gratuit, professionnel à partir de 1,5 $/heure |
Nhost | Backend sans serveur | Base de données en temps réel, API GraphQL | Niveau gratuit, à partir de 25 $/mois |
Conclusion
Cet article explique les avantages et les inconvénients de Firebase, sa structure tarifaire, ses principales fonctionnalités et les meilleures plateformes alternatives.
Firebase est la plateforme de développement d’applications mobiles de Google. Ses avantages comprennent un environnement de développement de bout en bout, un temps de mise sur le marché plus rapide pour créer des applications et une infrastructure évolutive.
Bien qu’il s’agisse d’un produit fantastique, Firebase présente des inconvénients. Il s’agit d’une plateforme à code source fermé, avec un verrouillage des fournisseurs, et qui ne fournit que des bases de données NoSQL.
En ce qui concerne les prix, Firebase fonctionne selon deux plans différents. Le premier est Spark, qui offre un niveau gratuit généreux et englobe la plupart des fonctionnalités de Firebase.
Le plan payant s’appelle Blaze et fonctionne selon un modèle basé sur l’utilisation. Il facture l’application en fonction de la charge de travail utilisée.
Firebase divise ses fonctionnalités en trois catégories principales : Build, Release & Monitor, et Engage. Elles sont toutes utilisées à différents stades du cycle de développement d’une application.
Firebase a de nombreux concurrents, dont Back4app, Backendless, AWS Amplify et Parse.
Nous espérons que cet article vous aidera à mieux comprendre Firebase et à décider d’utiliser ou non ce service.