Bonnes pratiques générales pour la configuration de projets Firebase

Cette page fournit des bonnes pratiques générales de haut niveau pour configurer des projets Firebase et enregistrer vos applications avec un projet afin que vous disposiez d'un flux de travail de développement clair utilisant des environnements distincts. Une fois que vous serez familiarisé avec les bonnes pratiques présentées sur cette page, consultez nos consignes générales de sécurité .

Comprendre la hiérarchie des projets Firebase

Schéma montrant la hiérarchie de base d'un projet Firebase, y compris le projet, ses applications enregistrées et ses ressources et services provisionnés Ce diagramme montre la hiérarchie de base d'un projet Firebase. Voici les relations clés :

  • Un projet Firebase est comme un conteneur pour toutes vos applications et toutes les ressources et services fournis pour le projet.

  • Un projet Firebase peut avoir une ou plusieurs applications Firebase enregistrées (par exemple, les versions iOS et Android d'une application, ou les versions gratuite et payante d'une application).

  • Toutes les applications Firebase enregistrées sur le même partage de projet Firebase et ont accès à toutes les mêmes ressources et services fournis pour le projet . Voici quelques exemples:

    • Toutes les applications Firebase enregistrées dans le même projet Firebase partagent les mêmes backends, comme l'hébergement Firebase, l'authentification, la base de données en temps réel, Cloud Firestore, Cloud Storage et Cloud Functions.

    • Toutes les applications Firebase enregistrées dans le même projet Firebase sont associées à la même propriété Google Analytics, où chaque application Firebase constitue un flux de données distinct dans cette propriété.

Où se situe un projet Google Cloud dans cette hiérarchie ?

Un aspect de la hiérarchie des projets Firebase qui n'est pas illustré dans le diagramme ci-dessus est la relation avec un projet Google Cloud. Un projet Firebase n'est en fait qu'un projet Google Cloud pour lequel des configurations et des services supplémentaires spécifiques à Firebase sont activés. Notez que toutes les applications enregistrées dans le même projet Firebase partagent et ont également accès à toutes les mêmes ressources et services Google Cloud.

Apprenez-en davantage sur la relation entre Firebase et Google Cloud dans Comprendre les projets Firebase.

Enregistrement de variantes d'application avec des projets Firebase

Voici quelques conseils importants pour enregistrer vos variantes d'application auprès d'un projet Firebase :

  • Assurez-vous que toutes les applications enregistrées dans un projet Firebase sont des variantes de plate-forme de la même application du point de vue de l'utilisateur final. Enregistrez les versions iOS, Android et Web de la même application ou du même jeu avec le même projet Firebase.

  • Si vous disposez de plusieurs variantes de build susceptibles de partager les mêmes ressources Firebase , enregistrez les variantes auprès du même projet Firebase. Quelques exemples sont un blog et une application Web dans le même projet, ou les versions gratuite et payante de la même application dans le même projet.

  • Si vous disposez de plusieurs variantes de build basées sur l'état de la version (plutôt que sur l'activité ou l'accès commun de l'utilisateur final, comme ci-dessus), enregistrez chaque variante dans un projet Firebase distinct . Un exemple est votre build debug vs release : enregistrez chacune de ces builds dans son propre projet Firebase.

    • Les builds basés sur l'état de la version ne doivent pas partager les mêmes ressources Firebase, car cela risque de polluer vos données de débogage ou même d'écraser vos données de production.

    • Les variantes de plate-forme de chacune de ces variantes de build doivent se trouver dans le même projet Firebase. Par exemple, enregistrez les versions de débogage iOS et Android dans un projet Firebase « dev », car elles peuvent toutes deux interagir avec les mêmes données et ressources non produites.

Éviter la multilocation

La mutualisation peut entraîner de graves problèmes de configuration et de confidentialité des données, notamment des problèmes involontaires d'agrégation d'analyses, d'authentification partagée, de structures de bases de données trop complexes et des difficultés liées aux règles de sécurité.

En règle générale, si un ensemble d'applications ne partagent pas les mêmes données et configurations, envisagez fortement d'enregistrer chaque application auprès d'un projet Firebase différent.

Par exemple, si vous développez une application en marque blanche, chaque application étiquetée indépendamment doit avoir son propre projet Firebase, et les versions iOS et Android de cette étiquette doivent se trouver dans le même projet Firebase. Chaque application étiquetée indépendamment ne doit pas (pour des raisons de confidentialité) partager des données avec les autres.

Prochaines étapes