Utilizzare App Check con il provider di debug con Flutter

Dopo aver registrato l'app per App Check, in genere l'app non verrà eseguita in un emulatore o da un ambiente di integrazione continua (CI), poiché questi ambienti non sono considerati dispositivi validi. Se vuoi eseguire la tua app in un ambiente simile durante lo sviluppo e i test, puoi creare una build di debug della tua app che utilizzi il provider di debug di App Check anziché un provider di attestazione reale.

Piattaforme Apple

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

  1. Attiva App Check con il provider di debug subito dopo aver inizializzato la tua app 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. Attiva il logging di debug nel 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 passati al momento dell'avvio, aggiungi -FIRDebugEnabled.
  3. Apri ios/Runner.xcworkspace con Xcode ed esegui l'app nel Simulatore. L'app stampa un token di debug locale nell'output di debug quando Firebase versucht di inviare una richiesta al backend. Ad esempio:

    Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. Nella sezione App Check della console Firebase, scegli Gestisci token di debug dal menu overflow della tua app. Quindi, registra il token di debug che hai eseguito nel passaggio precedente.

    Screenshot della voce di menu Gestisci token di debug

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

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

Android

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());
}

L'app stampa un token di debug locale nell'output di debug quando Firebase tenta di inviare una richiesta al backend. Ad 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 App Check della console Firebase, scegli Gestisci token di debug dal menu extra dell'app. Quindi, registra il token di debug che hai eseguito nel passaggio precedente.

    Screenshot della voce di menu Gestisci token di debug

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

Web

Per utilizzare il provider di debug durante l'esecuzione della tua app da localhost (ad esempio durante lo sviluppo), procedi nel seguente modo:

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

    <body>
      <script>
        self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
      </script>
    
      ...
    
    </body>
    
  2. Esegui l'app web localmente 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 viene archiviato localmente nel browser e verrà utilizzato ogni volta che utilizzi la tua app nello stesso browser sulla stessa macchina. Se vuoi utilizzare il token in un altro browser o su un'altra macchina, imposta self.FIREBASE_APPCHECK_DEBUG_TOKEN sulla stringa del token anziché true.

  3. Nella sezione App Check della console Firebase, scegli Gestisci token di debug dal menu extra dell'app. Quindi, registra il token di debug che hai eseguito nel passaggio precedente.

    Screenshot della voce di menu Gestisci token di debug

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

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