Cette page fournit des bonnes pratiques générales de haut niveau 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 aurez pris connaissance des bonnes pratiques sur cette page, consultez nos consignes de sécurité générales.
Comprendre la hiérarchie des projets Firebase
Ce schéma illustre 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 contenir 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 aux 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 constitue un flux de données distinct dans cette propriété.
Où se situe un projet Google Cloud dans cette hiérarchie ?
La hiérarchie des projets Firebase comporte un aspect qui n'est pas représenté dans le diagramme ci-dessus : 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 spécifiques à Firebase sont activés. Notez que toutes les applications enregistrées dans le même projet Firebase partagent et ont accès aux mêmes ressources et services Google Cloud.
En savoir plus sur la relation entre Firebase et Google Cloud dans Comprendre les projets Firebase
Enregistrer des variantes d'application avec des projets Firebase
Voici quelques conseils importants pour enregistrer les variantes de votre application dans 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 d'une même application ou d'un même jeu dans le même projet Firebase.
Si vous disposez de plusieurs variantes de compilation qui pourraient partager les mêmes ressources Firebase, enregistrez-les 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 avez plusieurs variantes de compilation basées sur l'état de publication (plutôt que sur une activité ou un accès courants des utilisateurs finaux, comme ci-dessus), enregistrez chaque variante dans un projet Firebase distinct. Par exemple, enregistrez chacune de vos versions de débogage et de release 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 d'écraser vos données de production avec vos données de débogage.
Les variantes de compilation plate-forme de chacune de ces variantes de compilation 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 destinées à la production.
Éviter l'architecture mutualisée
Le multitenancy 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 avec les 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 dans un projet Firebase différent.
Par exemple, si vous développez une application en marque blanche, chaque application portant un libellé indépendant doit avoir son propre projet Firebase, et les versions iOS et Android de ce libellé doivent se trouver dans le même projet Firebase. Chaque application étiquetée indépendamment ne doit pas (pour des raisons de confidentialité) partager de données avec les autres.
Étapes suivantes
Consultez les consignes de sécurité générales pour différents environnements. Vous devez vous assurer que chaque environnement et ses données sont sécurisés.
Consultez la checklist de lancement de Firebase.