Qu’est-ce que Firebase ?
Firebase est un ensemble de services d’applications mobiles et de cloud computing, mis en place par Google, à disposition des développeurs. Maintenant que l’on a dit que ça, qu’est-ce que ça veut dire… ?
Imaginons que votre application soit un supermarché. Il y a la partie visible que vous allez voir en tant que client : la devanture du magasin, les rayons, les produits mis en vente, les caisses, etc. Et il y a la partie cachée qui fait pourtant fonctionner tout ce magasin : les stocks, les chambres froides, les pertes, la base de données sur laquelle sont conservés tous vos points de fidélité, etc.
Firebase est en quelque sorte cette partie cachée. C’est sur cette plateforme, qui sert de “back-end”, que vous allez stocker vos données et celles de vos utilisateurs, pour pouvoir les manipuler et les renvoyer quand ils le demandent.
Prenons maintenant un exemple en lien avec ce qui nous intéresse : les applications mobiles. Imaginons que vous souhaitez créer une app qui permet aux utilisateurs de noter des musiques. Pour pouvoir distinguer chaque utilisateur, il va bien falloir qu’ils puissent se faire des comptes ? Puis les notes qu’ils vont attribuer à des musiques devront être stockées quelque part, pour qu’ils puissent les voir dans leur profil, les modifier ou les supprimer plus tard ? Et enfin, vous voudrez peut-être faire une moyenne de toutes les notes données, pour chaque musique, afin de les classer par ordre de popularité ?
Firebase vous permet de faire tout cela en conservant vos comptes utilisateurs, en stockant et en vous donnant accès aux données que vous collectez et en vous permettant de les manipuler grâce à des fonctions automatisées.
Les produits Firebase
Comme expliqué, Firebase n’est pas un produit, mais un ensemble de produits. On va donc trouver plusieurs outils qui vont vous être très pratiques pour rendre votre application dynamique.
Firestore
Firestore est la base de données de Firebase. C’est ici que vous allez pouvoir stocker toutes les informations dont vous avez besoin pour faire fonctionner votre application. Vous pouvez y mettre des :
- Chaînes de caractères ;
- Chiffres ;
- Valeurs booléennes ;
- Listes ;
- Maps ;
- Valeurs temporelles ;
- Coordonnées géographiques.
Deux notions sont importantes à comprendre quand on utilise Firestore. Vos données sont stockées dans des documents, qui sont eux-mêmes stockés dans des listes. Je vais par exemple avoir une liste “utilisateurs”, qui va contenir plusieurs documents représentant mes utilisateurs, chaque document ayant un champ “nom”, “age”, “email”, etc.
Firebase Auth
Firebase Auth est la partie de Firebase qui va stocker et assurer la sécurité du compte de votre utilisateur. Vos utilisateurs vont avoir la possibilité de se connecter via plusieurs solutions telles que :
- Email + mot de passe ;
- Leur compte Google ;
- Leur compte Apple ;
- Un numéro de téléphone ;
- Leur compte Facebook ;
- Leur compte Twitter, etc.
Fonctions Cloud
Il arrive que l’on ait besoin de manipuler un jeu de donnée pour en sortir quelque chose de nouveau. Par exemple, vous pourriez vouloir calculer la moyenne d’un ensemble de notes. Ou bien vous assurer que les données transmissent depuis le front-end respectent bien un certain format avant de les envoyer dans votre base de données. Ou encore envoyer des mails de relance à vos utilisateurs, tous les xx jours.
Tout cela ne peut pas se faire depuis l’interface de votre application et c’est donc là que Fonctions Cloud intervient. Grâce à celui-ci, vous pourrez créer des fonctions depuis Visual Studio et les exporter vers Firebase, afin de manipuler votre base de données.
Google Analytics
Enfin, mettre votre application en ligne est déjà une étape très importante, mais l’améliorer par la suite le sera tout autant. Mais pour cela, vous avez besoin de savoir ce que vos utilisateurs font sur votre app, ce qui les fait rester et ce qui les fait quitter. C’est pour cela que Firebase met aussi à disposition son outil Google Analytics (anciennement Firebase Analytics), qui vous permet de mesurer les actions de vos utilisateurs.
Firebase est-il gratuit ?
Firebase est gratuit… jusqu’à un certain point. En effet, chaque action que vous réalisez est mesurée et une fois un certain seuil dépassé, vous devrez payer pour chaque action additionnelle. Toutefois, les tarifs restent relativement modiques :
Tarifs des services proposés par Firebase | |
Firestore | |
Gratuit jusqu’à | Puis payant selon ce tarif |
1GiB de données stockées | 0.1725 $ par GiB et par mois |
10 GiB de consommation de données par mois | 0.1725 $ par GiB et par mois |
20K écritures/modifications de documents par jour | 0.1042 $ pour 100 000 documents |
50K par document renvoyé vers le front-end, par jour | 0.0345 $ pour 100 000 documents |
20K suppressions de documents par jour | 0.0115 $ pour 100 000 documents |
Authentification | |
10 SMS envoyés par jour | Le prix par SMS dépend du pays de réception. Vous pouvez consulter cette page pour en savoir plus. |
50K utilisateurs par mois | Le tarif varie selon le nombre d’utilisateurs mensuels. Vous pouvez consulter cette page pour en savoir plus. |
Cloud Functions | |
2M d’invocations par mois | 0.40 $ par million |
400k secondes de temps de calcul | Le tarif varie selon les besoins. Vous pouvez consulter cette page pour en savoir plus. |
120 minutes par jour de Cloud Build | 0.003 $ par minute |
Installer Firebase avec Flutter
Pour installer Firebase, deux options s’offrent à vous :
- L’installer manuellement ;
- Utiliser un package.
Les deux options fonctionnent très bien, et si la deuxième est plus rapide, la première a le mérite de ne pas vous faire dépendre d’un package. Je vous conseille donc d’essayer les deux, pour être plus polyvalent.