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

Une fois que vous avez enregistré votre application pour App Check, votre application ne s'exécutera normalement pas dans un émulateur ou à 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 une version de débogage de votre application qui utilise le fournisseur de débogage App Check au lieu d'un véritable fournisseur d'attestation.

Plateformes Apple

Pour utiliser le fournisseur de débogage lors de l'exécution interactive de votre application dans un simulateur (pendant le développement, par exemple), procédez comme suit :

  1. Activez App Check auprès du 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 du débogage dans votre projet Xcode (v11.0 ou plus récent) :

    1. Ouvrez Produit > Schéma > Modifier le schéma .
    2. Sélectionnez Exécuter dans le menu de gauche, puis sélectionnez 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 imprimera un jeton de débogage local sur la sortie de débogage lorsque Firebase tentera d'envoyer une requête au backend. Par exemple:

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

    Capture d'écran de l'élément de menu Gérer les jetons de débogage

Après avoir enregistré le jeton, les services backend Firebase l'accepteront comme valide.

Étant donné que ce jeton permet d'accéder à vos ressources Firebase sans appareil valide, il est essentiel que vous le gardiez privé. Ne le validez pas dans un référentiel public et si un jeton enregistré est compromis, révoquez-le immédiatement dans la console Firebase.

Android

Pour utiliser le fournisseur de débogage lors de l'exécution de 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 imprimera un jeton de débogage local sur la sortie de débogage lorsque Firebase tentera d'envoyer une requête au backend. Par 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, choisissez Gérer les jetons de débogage dans le menu à débordement de votre application. Ensuite, enregistrez le jeton de débogage que vous avez connecté à l'étape précédente.

    Capture d'écran de l'élément de menu Gérer les jetons de débogage

Après avoir enregistré le jeton, les services backend Firebase l'accepteront comme valide.

la toile

Pour utiliser le fournisseur de débogage lors de l'exécution de votre application à partir de localhost (pendant le 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 de développement 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 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 du jeton au lieu de true .

  3. Dans la section App Check de la console Firebase, choisissez Gérer les jetons de débogage dans le menu à débordement de votre application. Ensuite, enregistrez le jeton de débogage que vous avez connecté à l'étape précédente.

    Capture d'écran de l'élément de menu Gérer les jetons de débogage

Après avoir enregistré le jeton, les services backend Firebase l'accepteront comme valide.

Étant donné que ce jeton permet d'accéder à vos ressources Firebase sans appareil valide, il est essentiel que vous le gardiez privé. Ne le validez pas dans un référentiel public et si un jeton enregistré est compromis, révoquez-le immédiatement dans la console Firebase.