Bonnes pratiques générales pour configurer des projets Firebase

Cette page présente des bonnes pratiques générales et générales pour configurer des projets Firebase et enregistrer vos applications dans un projet afin de disposer d'un workflow de développement clair qui utilise des environnements distincts. Une fois que vous avez pris connaissance des bonnes pratiques de cette page, consultez nos consignes de sécurité générales.

Comprendre la hiérarchie des projets Firebase

Schéma illustrant la hiérarchie de base d'un projet Firebase, y compris le projet, ses applications enregistrées, ainsi que ses ressources et services provisionnés Ce schéma présente la hiérarchie de base d'un projet Firebase. Voici les principales relations:

  • Un projet Firebase est comme un conteneur pour toutes vos applications, ainsi que pour les ressources et services provisionnés pour le projet.

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

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

    • Toutes les applications Firebase enregistrées dans le même projet Firebase partagent les mêmes backends, comme Firebase Hosting, Authentication, Realtime Database, 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 est 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 indiqué dans le diagramme ci-dessus est la relation avec un projet Google Cloud. Un projet Firebase n'est en réalité qu'un projet Google Cloud pour lequel des configurations et des services 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 aux mêmes ressources et services Google Cloud.

Pour en savoir plus sur la relation entre Firebase et Google Cloud, consultez Comprendre les projets Firebase.

Enregistrer des variantes d'application avec des projets Firebase

Voici quelques conseils importants pour enregistrer vos variantes d'application avec 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 variants de compilation pouvant partager les mêmes ressources Firebase, enregistrez les variantes dans le même projet Firebase. Par exemple, un blog et une application Web dans le même projet, ou les versions sans frais et payante de la même application dans le même projet.

  • Si vous disposez de plusieurs variantes de compilation basées sur l'état de la version (plutôt que sur l'activité ou l'accès des utilisateurs finaux courants, comme ci-dessus), enregistrez chaque variante avec un projet Firebase distinct. Par exemple, votre version de débogage par rapport à votre version de publication : enregistrez chacune de ces versions 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 ou même de remplacer vos données de production.

    • Les variantes de plate-forme de chacune de ces variantes de compilation doivent se trouver dans le même projet Firebase. Par exemple, enregistrez les builds de débogage iOS et Android dans un projet Firebase "dev", car ils peuvent tous deux interagir avec les mêmes données et ressources non destinées à la production.

Éviter l'architecture mutualisée

La multi-propriété peut entraîner de graves problèmes de configuration et de confidentialité des données, y compris des problèmes involontaires liés à l'agrégation des données analytiques, à l'authentification partagée, à des structures de base 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 partage pas les mêmes données et configurations, nous vous recommandons vivement d'enregistrer chaque application avec un projet Firebase différent.

Par exemple, si vous développez une application blanche, chaque application associée à un libellé indépendant doit disposer de son propre projet Firebase, et les versions iOS et Android de ce libellé doivent se trouver dans le même projet Firebase. Pour des raisons de confidentialité, chaque application associée à un libellé indépendant ne doit pas partager de données avec les autres.

Étapes suivantes