Cet article est une adaptation de What’s the relationship between Firebase and Google Cloud? écrit à l'origine par Doug Stevenson

Si vous êtes développeur d'applications mobiles, j'imagine qu'il y a de bonnes chances que vous connaissiez Firebase, la plate-forme de développement d'applications mobiles de Google. Ou, si vous êtes un développeur de systèmes d'entreprise, vous connaissez peut-être quelque chose à propos de Google Cloud Platform (GCP), une vaste gamme de produits et services qui hébergent vos données et votre code à l'échelle planétaire, et plus. Bien que les deux plates-formes puissent être utilisées à l'insu de l'autre, elles se chevauchent à certains égards. La connaissance de cette relation est importante dans deux circonstances :

  1. Vous êtes développeur d'applications Firebase et vous devez étendre votre infrastructure backend au-delà de ce que Firebase fournit par défaut.
  2. Vous êtes développeur Google Cloud, et vous souhaitez construire une application mobile (ou web) sur votre infrastructure existante en GCP.
    Même si ces situations ne s'appliquent pas (encore !) à vous, comprendre comment les outils et les services sont liés devrait vous aider à réduire la friction que vous pourriez rencontrer avec certaines tâches, en particulier en ce qui concerne votre application Firebase.

Alors, que devez-vous savoir ? Commençons par le détail le plus important.

Un projet Firebase est aussi un projet GCP


Lorsque vous allez créer un projet Firebase, ce fait est le plus souvent caché. Pour débuter avec Firebase, il n'est tout simplement pas nécessaire de connaître GCP. Le parcours d'intégration est optimisé pour vous permettre d'arriver à une solution de travail avec un minimum d'effort. Je sais que beaucoup de développeurs apprécient cela !

Voici une capture d'écran de la console Firebase après avoir créé un nouveau projet :

Vous pouvez voir une liste déroulante des produits sur la gauche, organisée par catégories de niveau supérieur qui s'agrandissent et s'effondrent. Au milieu, vous avez quelques boutons qui vous aident à commencer à ajouter votre application au projet. C'est assez clair ce que l'on attend de vous. Plus tard, après avoir ajouté une application et commencé à utiliser certains des produits, la zone principale se transforme en un tableau de bord qui vous montre quelques statistiques sur les produits que vous utilisez.

En revanche, voici une capture d'écran du même projet nouvellement créé dans la console Google Cloud :

L'aspect et la sensation sont presque complètement différents. Ici, j'ai aussi ouvert le menu hamburger en haut à gauche, et il survole le contenu principal. Ce menu défile également, et il y a beaucoup plus de produits et d'options ici que dans la console Firebase.

Vous pouvez considérer un projet GCP comme un conteneur virtuel pour les données, le code, la configuration et les services, indépendamment de la façon dont il a été créé. Lorsque vous créez un projet Firebase, vous créez en fait un projet Google Cloud dans les coulisses. Cela signifie que vous pouvez visualiser et gérer de nombreux aspects de votre projet Firebase dans la console Cloud.

Dans certains cas, la console Firebase délègue en fait à la console Cloud afin de gérer certaines tâches courantes, comme la gestion de la facturation et la gestion administrative des utilisateurs (appelée gestion des identités et des accès, ou IAM dans la console Cloud). Donc, si vous travaillez avec la console Firebase, alors cliquez sur quelque chose avec un thème d'interface bleu et blanc et vous serez envoyé vers la console Cloud. Même projet, console et interface utilisateur différentes. Voici à quoi cela ressemble si vous essayez de cliquer sur un compte de facturation depuis la console Firebase. C'est bien la console Cloud, même si il est indiqué "Firebase" en haut :

Il y a une chose très importante à savoir sur ces conteneurs de projet. Puisque le projet sous-jacent est le même pour Firebase et GCP, si vous supprimez le projet en utilisant Firebase ou la console Cloud, vous supprimerez tout ce qui se trouve dans ce conteneur, peu importe où il a été configuré ou créé. Donc, si vous avez créé un projet avec la console Cloud, puis y ajouter Firebase, puis supprimer le projet dans la console Firebase, toutes vos données Cloud seront également supprimées.

Un projet GCP existant peut être configuré pour ajouter des services Firebase


Imaginons plutôt que vous ayez créé un projet dans la console Cloud. Au départ, votre projet n'aura rien de directement lié à Firebase qui y sera configuré. Après tout, la console Cloud ne sait pas si vous avez l'intention de créer une application mobile, alors pourquoi l'installer ? Mais si vous avez un projet Cloud existant, vous pouvez très facilement y ajouter Firebase.

Pour ajouter des services Firebase à un projet existant, allez dans la console Firebase, cliquez sur le bouton "ajouter". Lorsqu'il vous demande le nom de votre projet, vous avez la possibilité de choisir un projet existant dans la liste déroulante qui affiche vos projets existants qui n'ont pas été ajoutés à Firebase.

Lorsque vous sélectionnez un projet et partez à partir de ce point, toutes les API et tous les services qui alimentent les produits Firebase seront automatiquement activés dans votre projet, et vous pourrez utiliser la console Firebase pour travailler avec ces produits.

Si vous demandez ce que je veux dire exactement par "API et services", c'est un concept GCP qui n'est visible que dans la console Cloud. Voici une capture d'écran des API et du tableau de bord des services depuis la console Cloud après l'ajout de Firebase à un projet :

Ici, vous pouvez voir un certain nombre d'API (activées par défaut), ainsi que certaines API de produits Firebase mises en évidence dans la zone rouge. Ce détail des API activées est caché aux développeurs dans la console Firebase, car il n'est pas vraiment nécessaire de le savoir. Cependant, la connaissance des API et des services GCP gagne en importance à mesure que le backend d'une application devient plus sophistiqué. Par exemple, un développeur d'application peut vouloir utiliser l'API Cloud Vision pour extraire le texte des images capturées par la caméra du périphérique. Ensuite, allez plus loin et traduisez le texte découvert dans cette image à l'aide de l'API Cloud Translation. Pour utiliser ces APIs (et être facturé pour elles), vous devez les activer dans la console Cloud. Une fois activés, vous pouvez les appeler à partir de votre code backend (déployé vers les fonctions Cloud, par exemple).

En fouillant dans chaque console, vous remarquerez que l'ensemble des produits que vous pouvez gérer dans la console Firebase a trois points communs avec l'ensemble des produits de la console Cloud. Ces produits sont le Cloud Storage, le Cloud Firestore et les Cloud Functions. Bien que chaque produit soit le même à la base, quel que soit l'endroit où vous le visualisez, ils sont tous organisés et gérés de manière très différente entre la console Firebase et la console Cloud. Cela m'amène au point suivant.

Firebase ajoute des SDK, des outils et des configurations à certains produits Google Cloud


Comme vous pouvez le deviner d'après leurs noms, Cloud Storage, Cloud Firestore et Cloud Functions sont des produits Google Cloud. Techniquement, ce ne sont pas des produits Firebase, même si vous pouvez travailler avec eux dans la console Firebase et les manipuler dans votre application en utilisant les SDK Firebase et les outils. Tout d'abord, quelques définitions rapides :

  • Cloud Storage (Firebase, GCP) est un système de stockage de fichiers massivement évolutif.
  • Cloud Firestore (Firebase, GCP) est une base de données NoSQL massivement évolutive en temps réel.
  • Cloud Functions (Firebase, GCP) fournit une infrastructure de calcul sans serveur pour la programmation événementielle.


Sans Firebase dans l'image, ces produits Cloud sont généralement utilisés dans les environnements d'entreprise, où les données et les processus sont principalement contrôlés dans Google Cloud, ou un autre backend. Pour travailler avec ces produits programmatiquement, Google Cloud fournit des APIs client destinées au code backend, ainsi que les outils en ligne de commande gcloud et gsutil.

Avec Firebase dans l'image, ces trois produits peuvent fonctionner de façon transparente avec les applications mobiles en fournissant des SDK supplémentaires pour les clients mobiles, des outils supplémentaires avec la Firebase CLI et un moyen de configurer les règles de sécurité pour contrôler l'accès aux données via les SDK fournis. Je parlerai de certaines des particularités de ces ajouts à la base de Firebase dans les prochains billets.

(Puisque j'ai mentionné Cloud IAM plus tôt, je dois également mentionner que Firebase offre des rôles IAM supplémentaires pour certains produits Firebase qui donnent aux autres membres de votre équipe un accès granulaire à ces produits, sans risque qu'ils fassent un changement dangereux ailleurs dans votre projet).

Notez que les noms de ces trois produits Cloud ne changent pas du point de vue de Firebase. Je sais qu'il est tentant (et naturel !) de dire des choses comme "Firebase Storage" et "Firebase Functions", mais ces noms ne sont pas précis. Suis-je prétencieux à ce sujet ? Peut-être, mais vous ne trouverez ces noms nulle part dans la documentation officielle ! Cependant, vous verrez des noms comme "Cloud Storage for Firebase" et "Cloud Functions for Firebase" lorsque vous traiterez avec les extensions Firebase pour ces produits Cloud.

OK, quel est le résultat de tout ça ?


Si vous êtes développeur d'applications Firebase, vous avez probablement créé votre projet dans la console Firebase. Mais, à un moment donné, vous devrez peut-être passer à la console Cloud pour certaines tâches administratives, pour étendre votre infrastructure Cloud ou pour utiliser les API Cloud. La console Firebase n'est que le début de la construction de l'infrastructure de votre application mobile.

Si vous êtes développeur d'infrastructure Cloud et que vous souhaitez créer des applications mobiles ou Web à partir des données que vous avez déjà stockées, vous devrez sauter dans la console Firebase pour gérer les configurations et les tâches qui sont uniques aux ajouts Firebase à certains produits Cloud.

En fait, les projets Actions on Google sont aussi des projets GCP (si vous travaillez avec DialogFlow). Ces projets ont Firebase activé par défaut, donc c'est une autre façon d'obtenir une nouvelle perspective sur un projet GCP. De toute façon, peu importe la façon dont votre projet a vu le jour, la console avec laquelle vous avez commencé pourrait ne pas être la seule console que vous utilisez. Penser un projet principalement comme un conteneur de services et d'API facilite cette transition. Chaque console vous donne juste un aperçu de ces services et APIs d'une manière différente.