Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Usa App Check con il provider di debug con Flutter

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Dopo aver registrato la tua app per App Check, la tua app normalmente non verrà eseguita in un emulatore o da un ambiente di integrazione continua (CI), poiché tali ambienti non si qualificano come dispositivi validi. Se vuoi eseguire la tua app in un ambiente di questo tipo durante lo sviluppo e il test, puoi creare una build di debug della tua app che usa il provider di debug di App Check invece di un vero provider di attestazione.

Piattaforme Apple

Per utilizzare il provider di debug durante l'esecuzione interattiva dell'app in un simulatore (durante lo sviluppo, ad esempio), procedi come segue:

  1. Nel file ios/Runner/AppDelegate.swift (o AppDelegate.m ), crea e imposta la factory del provider di debug di App Check nelle build di debug:

    Rapido

    import UIKit
    import Flutter
    import Firebase  // Add the Firebase import.
    
    @UIApplicationMain
    @objc class AppDelegate: FlutterAppDelegate {
      override func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
      ) -> Bool {
        // Use the debug provider in Debug builds:
    #if DEBUG
        let providerFactory = AppCheckDebugProviderFactory()
        AppCheck.setAppCheckProviderFactory(providerFactory)
    #endif
    
        GeneratedPluginRegistrant.register(with: self)
        return super.application(application, didFinishLaunchingWithOptions: launchOptions)
      }
    }
    

    Obiettivo-C

    #import "AppDelegate.h"
    #import "GeneratedPluginRegistrant.h"
    @import Firebase;  // Add the Firebase import.
    
    @implementation AppDelegate
    
    - (BOOL)application:(UIApplication *)application
        didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
      // Use the debug provider in Debug builds:
    #if DEBUG
      FIRAppCheckDebugProviderFactory *providerFactory = [[FIRAppCheckDebugProviderFactory alloc] init];
      [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    #endif
      [GeneratedPluginRegistrant registerWithRegistry:self];
      // Override point for customization after application launch.
      return [super application:application didFinishLaunchingWithOptions:launchOptions];
    }
    
    @end
    
  2. Abilita la registrazione di debug nel tuo progetto Xcode (v11.0 o successiva):

    1. Apri Prodotto > Schema > Modifica schema .
    2. Seleziona Esegui dal menu a sinistra, quindi seleziona la scheda Argomenti .
    3. Nella sezione Argomenti trasmessi all'avvio, aggiungi -FIRDebugEnabled .
  3. Apri ios/Runner.xcworkspace con Xcode ed esegui la tua app nel simulatore. La tua app stamperà un token di debug locale nell'output di debug quando Firebase tenta di inviare una richiesta al back-end. Per esempio:

    [Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. Nella sezione Verifica app della console Firebase, scegli Gestisci token di debug dal menu di overflow della tua app. Quindi, registra il token di debug che hai effettuato l'accesso nel passaggio precedente.

    Screenshot della voce di menu Gestisci token di debug

Dopo aver registrato il token, i servizi di backend Firebase lo accetteranno come valido.

Poiché questo token consente l'accesso alle tue risorse Firebase senza un dispositivo valido, è fondamentale mantenerlo privato. Non eseguire il commit in un repository pubblico e, se un token registrato viene mai compromesso, revocalo immediatamente nella console di Firebase.

Androide

Per utilizzare il provider di debug durante l'esecuzione dell'app Flutter in un ambiente Android, implementa il seguente codice nell'applicazione 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());
}

La tua app stamperà un token di debug locale nell'output di debug quando Firebase tenta di inviare una richiesta al back-end. Per esempio:

D DebugAppCheckProvider: Enter this debug secret into the allow list in
the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
  1. Nella sezione Verifica app della console Firebase, scegli Gestisci token di debug dal menu di overflow della tua app. Quindi, registra il token di debug che hai effettuato l'accesso nel passaggio precedente.

    Screenshot della voce di menu Gestisci token di debug

Dopo aver registrato il token, i servizi di backend Firebase lo accetteranno come valido.

ragnatela

Per utilizzare il provider di debug durante l'esecuzione dell'app da localhost (durante lo sviluppo, ad esempio), procedi come segue:

  1. Nel file web/index.html , abilita la modalità di debug impostando self.FIREBASE_APPCHECK_DEBUG_TOKEN su true :

    <body>
      <script>
        self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
      </script>
    
      ...
    
    </body>
    
  2. Esegui la tua app Web in locale e apri lo strumento per sviluppatori del browser. Nella console di debug, vedrai un token di debug:

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

    Questo token è archiviato localmente nel tuo browser e verrà utilizzato ogni volta che utilizzi la tua app nello stesso browser sulla stessa macchina. Se desideri utilizzare il token in un altro browser o su un'altra macchina, imposta self.FIREBASE_APPCHECK_DEBUG_TOKEN sulla stringa del token anziché su true .

  3. Nella sezione Verifica app della console Firebase, scegli Gestisci token di debug dal menu di overflow della tua app. Quindi, registra il token di debug che hai effettuato l'accesso nel passaggio precedente.

    Screenshot della voce di menu Gestisci token di debug

Dopo aver registrato il token, i servizi di backend Firebase lo accetteranno come valido.

Poiché questo token consente l'accesso alle tue risorse Firebase senza un dispositivo valido, è fondamentale mantenerlo privato. Non eseguire il commit in un repository pubblico e, se un token registrato viene mai compromesso, revocalo immediatamente nella console di Firebase.