Checklist pour le lancement de Firebase

Ce document contient une checklist des bonnes pratiques et des points à 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 la Firebase Local Emulator Suite (pour les produits compatibles) avant de 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 Firebase Remote Config les déploiements pour publier de nouvelles fonctionnalités et mises à jour dans votre application de manière sécurisée et progressive.

  • Si ce n'est pas déjà fait, envisagez de configurer Firebase Crashlytics. Il s'agit d'un outil léger de création de rapports de plantage en temps réel qui vous aide à suivre, à prioriser 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 budgétaires

  • Assurez-vous de ne pas dépasser les limites d'utilisation et les quotas après la mise en production, en particulier si vous utilisez le forfait Spark sans frais. Envisagez de passer au forfait Blaze avec paiement à l'usage.

  • Configurez des alertes budgétaires pour votre projet.

    • Notez que les alertes budgétaires ne sont pas des plafonds budgétaires. Une alerte vous envoie des communications lorsque vous approchez ou dépassez le seuil 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ésactiveront la facturation en réponse aux alertes.

    • Si vous utilisez Firebase AI Logic, App Hosting, Cloud Functions for Firebase, ou Firebase Extensions, nous vous recommandons vivement de définir également des plafonds de dépenses budgétaires, Le service concerné sera alors mis en pause si votre projet dépasse le budget défini pour ce service.

  • Surveillez votre utilisation dans les tableaux de bord spécifiques aux produits ou dans le tableau de bord central Utilisation et facturation du tableau de bord dans la console Firebase.

Assurez-vous que vos projets et applications Firebase suivent les bonnes pratiques

Que vous soyez un développeur unique ou une équipe de grande 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.

Il est utile de se rappeler qu'un projet Firebase n'est en réalité qu'un Google Cloud projet pour lequel les services et configurations Firebase sont activés. Cela signifie que de nombreuses bonnes pratiques recommandées par Google Cloud s'appliquent également à 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. En savoir plus sur la configuration des workflows de développement.

  • Protégez vos projets importants, en particulier celui associé à votre application de production.

    • Utilisez des privilèges de projet pour vous protéger contre la suppression accidentelle de projets.

    • Appliquez un "Prod" tag dans la Firebase console pour identifier plus facilement votre environnement de production.

  • Si ce n'est pas déjà fait, envisagez de configurer une Google Cloud organisation et d'y ajouter vos projets Firebase.

  • Ajoutez plusieurs propriétaires à vos projets Firebase, en particulier si votre projet ne se trouve pas dans une Google Cloud organisation. Découvrez quand et comment attribuer des propriétaires à un projet Firebase.

  • Ajoutez des membres de projet (également appelés "comptes principaux") en tant que groupes Google plutôt qu'individuellement.

    L'utilisation de groupes facilite l'attribution de rôles aux membres de l'équipe en bloc, ainsi que la gestion des personnes ayant accès à votre projet Firebase, en particulier si les membres de l'équipe changent ou partent.

  • Accordez à chaque membre de projet (également appelé "compte principal") 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 de projet concerné (également appelé "compte principal") configure ses préférences pour recevoir des alertes concernant des produits spécifiques ou l'état du projet (par exemple, les modifications du forfait 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 de projet spécifiques ou supplémentaires 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 la facturation, les aspects juridiques et les modifications de produits.

  • Restreignez vos clés API Firebase uniquement aux API qui doivent figurer sur la liste d'autorisation des API de la clé. Consultez également les informations sur les clés API dans la checklist de sécurité de Firebase.

Préparer des services spécifiques utilisés dans votre application

Chaque produit et service utilisé dans votre application peut avoir des points spécifiques à prendre en compte lorsqu'il est utilisé en production.

Firebase AI Logic

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 BigQuery SQL ou les exporter 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. Vous ne pouvez en créer qu'un nombre limité, et elles ne peuvent pas être archivées.

  • Consultez les paramètres des Google Analytics rôles pour vos Google Analytics propriétés et comptes. Ces autorisations sont gérées séparément des autorisations et rôles IAM du projet Firebase.

  • Assurez-vous que votre ID App Store et votre ID d'équipe (si nécessaire) 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 Firebase console.

  • Si ce n'est 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 Authentication service d'envoi d'e-mails.

  • Si vous utilisez les services de validation par SMS Identity Platform, commencez à appliquer Firebase App Check et configurez une règle de région SMS pour protéger votre application contre les utilisations abusives des 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 Firebase console. 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 pour vos domaines afin d'empêcher toute utilisation non autorisée. Plus précisément, autorisez l'accès à votre domaine de production dans la Authentication section de la console Firebase (ce qui est particulièrement important si vous utilisez des produits qui s'appuient sur Firebase Security Rules).

Cloud Firestore

Cloud Messaging

  • Envisagez d'activer l'exportation des données Cloud Messaging vers BigQuery afin de pouvoir analyser vos données avec BigQuery SQL ou les exporter pour les utiliser avec vos propres outils.

  • Importez votre clé d'authentification APNs pour Cloud Messaging sur les applications Apple dans la Firebase console. Si vous utilisez des certificats APNs, assurez-vous que votre certificat APNs de production est importé.

Cloud Storage

Crashlytics

  • Assurez-vous que chaque membre de projet concerné (également appelé "compte principal") configure ses préférences pour recevoir des alertes concernant Crashlytics ou l'état du projet (par exemple, les modifications du forfait 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 BigQuery SQL ou les exporter pour les utiliser avec vos propres outils.

  • (Android et iOS natifs uniquement) Envisagez d'activer l'assistance IA dans Crashlytics pour vous aider à comprendre plus rapidement la cause d'un plantage et les mesures à prendre.

  • Importez le fichier dSYM pour les builds à utiliser dans Crashlytics. Assurez-vous qu'Xcode peut traiter automatiquement les dSYM et importer les fichiers.

  • Importez le mappage ProGuard pour les builds à utiliser dans Crashlytics. L'importation est possible à l'aide de l'interface CLIFirebase.

  • Associez Firebase à Google Play pour obtenir une vue plus complète de l'état de votre application Android. Par exemple, vous pouvez filtrer les rapports de plantage 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 build pour laquelle vous souhaitez disposer de symboles, que le code ou la configuration aient été modifiés ou non.

Firebase ML

Performance Monitoring

  • Assurez-vous que chaque membre de projet concerné (également appelé "compte principal") configure ses préférences pour recevoir des alertes concernant Performance Monitoring ou l'état du projet (par exemple, les modifications du forfait 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 BigQuery SQL ou les exporter pour les utiliser avec vos propres outils.

Realtime Database

  • Configurez vos Realtime Database Security Rules pour empêcher tout accès involontaire aux données.

  • Assurez-vous que vous êtes prêt à effectuer une mise à l'échelle. Realtime Database dispose d'un quota par défaut suffisamment élevé pour la plupart des applications, mais certaines applications peuvent nécessiter une capacité supplémentaire.

  • Configurez vos règles ProGuard pour qu'elles fonctionnent avec Realtime Database.

Remote Config

  • Assurez-vous qu'aucune règle expérimentale Remote Config n'affecte les utilisateurs de votre version et que les valeurs par défaut appropriées du serveur et de l'application sont distribuées dans votre application.