Faire le back-end de son application Flutter avec Firebase


Avatar de Pierre Courtois

Pour que votre application puisse fonctionner, vous aurez surement besoin de collecter et de renvoyer des informations en temps réel. Par exemple, vous aurez besoin de conserver un email et un mot de passe, pour identifier un utilisateur. Mettre en place Firebase, sera donc une étape importante de la construction de votre application sur Flutter. 


firebase with flutter

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.  

Créer une base de données

Si vous souhaitez en savoir plus sur comment créer une base de données avec Firebase et Flutter, j’ai rédigé un article à ce sujet qui explique comment la mettre en place et y ajouter des données.

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.

Chaque méthode de connexion nécessite de mettre en place des fonctions particulière dans votre application et vous permettra d’accéder à des informations distinctes. Par exemple, vous aurez accès à la photo du profil d’un utilisateur qui se connecte avec Google. 

Créer des profils d’utilisateurs et les connecter

Si vous souhaitez en savoir plus sur comment créer des profils d’utilisateurs pour votre application, puis mettre en place un système de connexion, je vous invite à lire mon guide complet sur le sujet.

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 mois0.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 moisLe 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 calculLe tarif varie selon les besoins. Vous pouvez consulter cette page pour en savoir plus.  
120 minutes par jour de Cloud Build0.003 $ par minute

Ce tableau ne couvre que les frais les plus courants. Pour voir le détail complet des différents tarifs mis en place par Firebase, vous pouvez consulter cette page

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.

Avant d’installer Firebase sur votre application Flutter, je vous recommande de changer votre bundle.id. En effet, cela sera plus compliqué de rebrancher votre base de données, si vous décidez par la suite de le modifier.  

Avatar de Pierre Courtois