Ce document contient une checklist de bonnes pratiques et d'éléments à prendre en compte avant de lancer une application Firebase en production.
Bonnes pratiques générales pour la publication
Assurez-vous d'avoir testé toutes vos modifications dans Firebase Local Emulator Suite (pour les produits compatibles) avant de les déployer en production. Des tests approfondis peuvent vous aider à éviter des erreurs coûteuses.
Commencez à appliquer Firebase App Check pour chaque service compatible. App Check permet de s'assurer que seules vos applications réelles peuvent accéder à vos services et ressources de backend.
Consultez la checklist de sécurité générale de Firebase.
Utilisez les déploiements Firebase Remote Config pour publier progressivement et de manière sécurisée de nouvelles fonctionnalités et mises à jour de votre application.
Si ce n'est pas déjà fait, envisagez de configurer Firebase Crashlytics. Il s'agit d'un outil de signalement des plantages léger et en temps réel qui vous aide à suivre, à hiérarchiser et à corriger les problèmes de stabilité qui nuisent à la qualité de votre application.
Connaître les limites de votre forfait et définir des alertes de budget
Assurez-vous de ne pas atteindre les limites et les quotas d'utilisation après la mise en production, en particulier si vous utilisez le forfait Spark sans frais. Pensez à passer au forfait Blaze avec paiement à l'usage.
Configurez des alertes de budget pour votre projet.
Notez que les alertes de budget ne sont pas des plafonds de budget. Une alerte vous sera envoyée lorsque vous approcherez ou dépasserez le seuil que vous avez configuré afin que vous puissiez prendre des mesures dans votre application ou votre projet.
Envisagez de configurer des alertes et des actions avancées, comme des fonctions qui désactivent la facturation en réponse aux alertes.
Surveillez votre utilisation dans les tableaux de bord spécifiques au produit ou dans le tableau de bord central "Utilisation et facturation" de la console Firebase.
Assurez-vous que vos projets et applications Firebase respectent les bonnes pratiques
Que vous soyez un développeur individuel ou une équipe d'entreprise, il est important de vous assurer que vos projets, applications et ressources Firebase sont protégés, sécurisés et peuvent évoluer en fonction des changements dans votre équipe.
N'oubliez pas qu'un projet Firebase n'est en réalité qu'un projet Google Cloud pour lequel les services et configurations Firebase sont activés. Cela signifie que de nombreuses bonnes pratiques recommandées par Google Cloud sont également applicables à Firebase.
Utilisez différents projets Firebase pour le développement, les tests et la production.
Essayez de limiter l'exposition inattendue au projet associé à votre application de production. Découvrez comment configurer des workflows de développement.
Protégez vos projets importants, en particulier le projet associé à votre application de production.
Utilisez des privilèges de projet pour vous protéger contre la suppression accidentelle de projets.
Appliquez un libellé"Prod" dans la console Firebase pour identifier plus facilement votre environnement de production.
Si ce n'est pas déjà fait, envisagez de configurer une organisation Google Cloud et d'y ajouter vos projets Firebase.
Ajoutez plusieurs propriétaires à vos projets Firebase, en particulier si votre projet n'appartient pas à une organisation Google Cloud. Découvrez quand et comment attribuer des propriétaires à un projet Firebase.
Ajoutez les membres du projet (appelés "principes") en tant que groupes Google au lieu de les ajouter individuellement.
L'utilisation de groupes permet d'attribuer plus facilement des rôles aux membres de l'équipe de manière groupée, et de gérer les accès à votre projet Firebase, en particulier si les membres de l'équipe changent ou quittent l'équipe.
Accordez à chaque membre du projet (également appelé "principe") le niveau d'accès approprié à vos projets et ressources Firebase. Pour en savoir plus, consultez Gérer l'accès aux projets avec Firebase IAM.
Assurez-vous que chaque membre du projet concerné (également appelé "principe") configure ses préférences pour recevoir des alertes sur des produits ou l'état du projet spécifiques (comme les modifications de plan de facturation ou les limites de quota). Pour en savoir plus, consultez Recevoir des alertes Firebase.
Vous pouvez également personnaliser les "contacts essentiels" de votre projet si vous souhaitez que des membres spécifiques ou supplémentaires du projet reçoivent des notifications. Cela est particulièrement utile pour s'assurer que le propriétaire du projet n'est pas le seul à recevoir des notifications concernant les modifications liées à la facturation, aux aspects juridiques et aux produits.
Limitez vos clés API Firebase aux API qui doivent figurer sur la liste d'autorisation de l'API de la clé. Consultez également les informations sur les clés API dans la checklist de sécurité de Firebase.
Préparer les services spécifiques utilisés dans votre application
Chaque produit et service utilisé dans votre application peut nécessiter des considérations spécifiques lorsqu'il est utilisé en production.
Google Analytics
Définissez des conditions d'audience pour Google Analytics afin de commencer à collecter des données analytiques dès le lancement de votre application.
Envisagez d'activer l'exportation des données Google Analytics vers BigQuery afin de pouvoir analyser vos données avec SQL BigQuery ou d'exporter les données pour les utiliser avec vos propres outils.
Limitez les propriétés utilisateur aux informations qui seront pertinentes pour le cycle de vie de l'ensemble de votre application. Le nombre de propriétés que vous pouvez créer est limité, et elles ne peuvent pas être archivées.
Vérifiez les paramètres des rôles Google Analytics pour vos propriétés et comptes Google Analytics. Ces autorisations sont gérées séparément des autorisations et des rôles IAM du projet Firebase.
Assurez-vous que votre ID App Store et votre ID d'équipe (le cas échéant) sont corrects dans les paramètres du projet de la console Firebase.
App Check
Assurez-vous que votre ID d'équipe est correct dans les paramètres du projet de la console Firebase.
Si vous ne l'avez pas déjà fait, commencez à appliquer Firebase App Check pour chaque service compatible. App Check permet de s'assurer que seules vos applications réelles peuvent accéder à vos services et ressources de backend.
Authentication
Désactivez tous les fournisseurs que vous n'utilisez pas (en particulier l'authentification anonyme).
Si votre application utilise Se connecter avec Google, personnalisez votre écran de consentement OAuth.
Personnalisez votre domaine et votre expéditeur pour le service d'envoi d'e-mails Authentication.
Si vous utilisez les services de validation par SMS d'Identity Platform, commencez à appliquer Firebase App Check et configurez une règle de région SMS pour protéger votre application contre les abus de SMS.
Implémentez la gestion des erreurs sur les plates-formes Apple pour les erreurs Authentication courantes.
Ajoutez un hachage SHA-1 de version pour le certificat de signature de votre application dans les paramètres du projet de la console Firebase. Le hachage SHA-1 est obligatoire si votre application utilise la connexion par numéro de téléphone ou la connexion avec Google (qui nécessite un client OAuth).
Ajoutez un contrôle des accès à vos domaines pour éviter toute utilisation non autorisée. Plus précisément, autorisez l'accès à votre domaine de production dans la section Authentication de la console Firebase (ce point est particulièrement important si vous utilisez des produits qui dépendent de Firebase Security Rules).
Cloud Firestore
Configurez votre Cloud Firestore Security Rules pour éviter tout accès non intentionnel aux données.
Utilisez ProGuard pour la minification du code dans votre build. Sans ProGuard, le SDK Cloud Firestore et ses dépendances peuvent augmenter la taille de votre APK.
Cloud Messaging
Envisagez d'activer l'exportation des données Cloud Messaging vers BigQuery afin de pouvoir analyser vos données avec SQL BigQuery ou d'exporter les données à utiliser avec vos propres outils.
Importez votre clé d'authentification APNS pour Cloud Messaging sur les applications Apple dans la console Firebase. Si vous utilisez des certificats APNS, assurez-vous que votre certificat APNS de production est importé.
Cloud Storage
- Configurez votre Cloud Storage Security Rules pour empêcher l'accès aux données de manière involontaire.
Crashlytics
Assurez-vous que chaque membre du projet concerné (également appelé "principe") configure ses préférences pour recevoir des alertes sur Crashlytics ou l'état du projet (comme les modifications de plan de facturation ou les limites de quota). Pour en savoir plus, consultez Recevoir des alertes Firebase.
Envisagez d'activer l'exportation des données Crashlytics vers BigQuery afin de pouvoir analyser vos données avec SQL BigQuery ou d'exporter les données pour les utiliser avec vos propres outils.
(Android natif et iOS uniquement) Envisagez d'activer l'assistance de l'IA dans Crashlytics pour comprendre plus rapidement pourquoi un plantage s'est produit et comment y remédier.
Importez le fichier dSYM pour les builds à utiliser dans Crashlytics. Assurez-vous que Xcode peut traiter automatiquement les fichiers dSYM et les importer.
Importez le mappage ProGuard pour les builds à utiliser dans Crashlytics. L'importation est possible à l'aide de la CLI Firebase.
Associez Firebase à Google Play pour obtenir une vue plus détaillée de l'état de votre application Android. Par exemple, vous pouvez filtrer les rapports d'erreur de votre application par canal Google Play, ce qui vous permet de mieux cibler votre tableau de bord sur des builds spécifiques.
Pour les builds ciblant Android et utilisant IL2CPP, assurez-vous d'importer des symboles natifs pour chaque exécution de compilation pour laquelle vous souhaitez disposer de symboles, que des modifications de code ou de configuration aient été apportées ou non.
Dynamic Links
- Dynamic Links est obsolète. Nous vous recommandons donc de ne plus utiliser ce service. Pour en savoir plus, consultez les questions fréquentes sur l'abandon.
Firebase ML
Consultez la section Préparer votre application Apple Firebase ML pour la production.
Consultez la section Préparer votre application Android Firebase ML pour la production.
Performance Monitoring
Assurez-vous que chaque membre du projet concerné (également appelé "principe") configure ses préférences pour recevoir des alertes sur Performance Monitoring ou l'état du projet (comme les modifications de plan de facturation ou les limites de quota). Pour en savoir plus, consultez Recevoir des alertes Firebase.
Envisagez d'activer l'exportation des données Performance Monitoring vers BigQuery afin de pouvoir analyser vos données avec SQL BigQuery ou d'exporter les données pour les utiliser avec vos propres outils.
Realtime Database
Configurez votre Realtime Database Security Rules pour empêcher l'accès aux données de manière involontaire.
Assurez-vous d'être prêt à évoluer. Realtime Database dispose d'un quota par défaut suffisamment élevé pour la plupart des applications, mais certaines peuvent avoir besoin d'une capacité supplémentaire.
Configurez vos règles ProGuard pour qu'elles fonctionnent avec Realtime Database.
Remote Config
- Assurez-vous que les règles expérimentales Remote Config n'affectent pas les utilisateurs de votre version et que les valeurs par défaut appropriées pour le serveur et l'application sont distribuées dans votre application.