Use o App Check com o provedor de depuração com Flutter

Depois de registrar seu aplicativo no App Check, ele normalmente não será executado em um emulador ou em um ambiente de integração contínua (CI), pois esses ambientes não se qualificam como dispositivos válidos. Se quiser executar seu aplicativo em tal ambiente durante o desenvolvimento e o teste, você poderá criar uma compilação de depuração do seu aplicativo que use o provedor de depuração do App Check em vez de um provedor de atestado real.

Plataformas Apple

Para usar o provedor de depuração ao executar seu app de forma interativa em um simulador (durante o desenvolvimento, por exemplo), faça o seguinte:

  1. Ative o App Check com o provedor de depuração logo após inicializar seu aplicativo 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. Habilite o registro de depuração em seu projeto Xcode (v11.0 ou mais recente):

    1. Abra Produto > Esquema > Editar esquema .
    2. Selecione Executar no menu esquerdo e selecione a guia Argumentos .
    3. Na seção Argumentos passados ​​na inicialização , adicione -FIRDebugEnabled .
  3. Abra ios/Runner.xcworkspace com Xcode e execute seu aplicativo no Simulador. Seu aplicativo imprimirá um token de depuração local na saída de depuração quando o Firebase tentar enviar uma solicitação ao back-end. Por exemplo:

    Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. Na seção App Check do console do Firebase, escolha Gerenciar tokens de depuração no menu flutuante do seu aplicativo. Em seguida, registre o token de depuração que você efetuou login na etapa anterior.

    Captura de tela do item de menu Gerenciar tokens de depuração

Depois de registrar o token, os serviços de back-end do Firebase o aceitarão como válido.

Como esse token permite acesso aos recursos do Firebase sem um dispositivo válido, é crucial mantê-lo privado. Não o envie para um repositório público e, se um token registrado for comprometido, revogue-o imediatamente no console do Firebase.

Android

Para usar o provedor de depuração ao executar seu aplicativo Flutter em um ambiente Android, implemente o seguinte código em seu aplicativo 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());
}

Seu aplicativo imprimirá um token de depuração local na saída de depuração quando o Firebase tentar enviar uma solicitação ao back-end. Por exemplo:

D DebugAppCheckProvider: Enter this debug secret into the allow list in
the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
  1. Na seção App Check do console do Firebase, escolha Gerenciar tokens de depuração no menu flutuante do seu aplicativo. Em seguida, registre o token de depuração que você efetuou login na etapa anterior.

    Captura de tela do item de menu Gerenciar tokens de depuração

Depois de registrar o token, os serviços de back-end do Firebase o aceitarão como válido.

Rede

Para usar o provedor de depuração ao executar seu aplicativo no localhost (durante o desenvolvimento, por exemplo), faça o seguinte:

  1. No arquivo web/index.html , habilite o modo de depuração definindo self.FIREBASE_APPCHECK_DEBUG_TOKEN como true :

    <body>
      <script>
        self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
      </script>
    
      ...
    
    </body>
    
  2. Execute seu aplicativo da web localmente e abra a ferramenta de desenvolvedor do navegador. No console de depuração, você verá um token de depuração:

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

    Esse token é armazenado localmente em seu navegador e será usado sempre que você usar seu aplicativo no mesmo navegador e na mesma máquina. Se você quiser usar o token em outro navegador ou em outra máquina, defina self.FIREBASE_APPCHECK_DEBUG_TOKEN como a string do token em vez de true .

  3. Na seção App Check do console do Firebase, escolha Gerenciar tokens de depuração no menu flutuante do seu aplicativo. Em seguida, registre o token de depuração que você efetuou login na etapa anterior.

    Captura de tela do item de menu Gerenciar tokens de depuração

Depois de registrar o token, os serviços de back-end do Firebase o aceitarão como válido.

Como esse token permite acesso aos recursos do Firebase sem um dispositivo válido, é crucial mantê-lo privado. Não o envie para um repositório público e, se um token registrado for comprometido, revogue-o imediatamente no console do Firebase.