Utiliser App Check avec le fournisseur de débogage avec Flutter

Une fois que vous avez activé App Check pour votre application, celle-ci ne s'exécute normalement pas dans un émulateur ni à partir d'un environnement d'intégration continue (CI), car ces environnements ne sont pas considérés comme des appareils valides. Si vous souhaitez exécuter votre application dans un tel environnement pendant le développement et les tests, vous pouvez créer un build de débogage de votre application qui utilise le fournisseur de débogage App Check au lieu d'un véritable fournisseur d'attestation.

Plates-formes Apple

Pour utiliser le fournisseur de débogage lorsque vous exécutez votre application de manière interactive dans un simulateur (lors du développement, par exemple), procédez comme suit:

  1. Activez App Check avec le fournisseur de débogage juste après avoir initialisé votre application Firebase :

    import 'package:flutter/material.dart';
    import 'package:firebase_core/firebase_core.dart';
    
    // Import the firebase_app_check plugin
    import 'package:firebase_app_check/firebase_app_check.dart';
    
    Future<void> main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
      await FirebaseAppCheck.instance.activate(
        // Set appleProvider to `AppleProvider.debug`
        appleProvider: AppleProvider.debug,
      );
      runApp(App());
    }
    
  2. Activez la journalisation de débogage dans votre projet Xcode (version 11.0 ou ultérieure) :

    1. Ouvrez Product > Scheme > Edit scheme (Produit > Schéma > Modifier le schéma).
    2. Sélectionnez Exécuter dans le menu de gauche, puis l'onglet Arguments.
    3. Dans la section Arguments transmis au lancement, ajoutez -FIRDebugEnabled.
  3. Ouvrez ios/Runner.xcworkspace avec Xcode et exécutez votre application dans le simulateur. Votre application imprime un jeton de débogage local dans la sortie de débogage lorsque Firebase tente d'envoyer une requête au backend. Exemple :

    Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. Dans la section App Check de la console Firebase, sélectionnez Gérer les jetons de débogage dans le menu à développer de votre application. Enregistrez ensuite le jeton de débogage que vous avez enregistré à l'étape précédente.

    Capture d&#39;écran de l&#39;élément de menu &quot;Gérer les jetons de débogage&quot;

Une fois le jeton enregistré, les services backend Firebase l'accepteront comme valide.

Étant donné que ce jeton permet d'accéder à vos ressources Firebase sans appareil valide, vous devez le garder privé. Ne l'ajoutez pas à un dépôt public. Si un jeton enregistré est compromis, révoquez-le immédiatement dans la console Firebase.

Android

Pour utiliser le fournisseur de débogage lorsque vous exécutez votre application Flutter dans un environnement Android, implémentez le code suivant dans votre application Flutter :

import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';

// Import the firebase_app_check plugin
import 'package:firebase_app_check/firebase_app_check.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  await FirebaseAppCheck.instance.activate(
    webRecaptchaSiteKey: 'recaptcha-v3-site-key',
    // Set androidProvider to `AndroidProvider.debug`
    androidProvider: AndroidProvider.debug,
  );
  runApp(App());
}

Votre application imprime un jeton de débogage local dans la sortie de débogage lorsque Firebase tente d'envoyer une requête au backend. Exemple :

D DebugAppCheckProvider: Enter this debug secret into the allow list in
the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
  1. Dans la section App Check de la console Firebase, sélectionnez Gérer les jetons de débogage dans le menu à développer de votre application. Enregistrez ensuite le jeton de débogage que vous avez enregistré à l'étape précédente.

    Capture d&#39;écran de l&#39;élément de menu &quot;Gérer les jetons de débogage&quot;

Une fois le jeton enregistré, les services backend Firebase l'accepteront comme valide.

Web

Pour utiliser le fournisseur de débogage lors de l'exécution de votre application à partir de localhost (lors du développement, par exemple), procédez comme suit:

  1. Dans le fichier web/index.html, activez le mode débogage en définissant self.FIREBASE_APPCHECK_DEBUG_TOKEN sur true:

    <body>
      <script>
        self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
      </script>
    
      ...
    
    </body>
    
  2. Exécutez votre application Web localement et ouvrez l'outil pour les développeurs du navigateur. Dans la console de débogage, vous verrez un jeton de débogage :

    AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678". You will
    need to safelist it in the Firebase console for it to work.

    Ce jeton est stocké localement dans votre navigateur et sera utilisé chaque fois que vous utiliserez votre application dans le même navigateur et sur la même machine. Si vous souhaitez utiliser le jeton dans un autre navigateur ou sur une autre machine, définissez self.FIREBASE_APPCHECK_DEBUG_TOKEN sur la chaîne de jeton au lieu de true.

  3. Dans la section App Check de la console Firebase, sélectionnez Gérer les jetons de débogage dans le menu à développer de votre application. Enregistrez ensuite le jeton de débogage que vous avez enregistré à l'étape précédente.

    Capture d&#39;écran de l&#39;élément de menu &quot;Gérer les jetons de débogage&quot;

Une fois le jeton enregistré, les services backend Firebase l'accepteront comme valide.

Étant donné que ce jeton permet d'accéder à vos ressources Firebase sans appareil valide, vous devez le garder privé. N'effectuez pas de commit dans un dépôt public. Si un jeton enregistré est compromis, révoquez-le immédiatement dans la console Firebase.