Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Use App Check com o provedor de depuração no Android

Se, depois de registrar seu aplicativo para App Check, você deseja executar seu aplicativo em um ambiente que App Check normalmente não classificaria como válido, como um emulador durante o desenvolvimento, ou de um ambiente de integração contínua (CI), você pode crie uma compilação de depuração de seu aplicativo que usa o provedor de depuração App Check em vez de um provedor de atestado real.

Use o provedor de depuração em um emulador

Para usar o provedor de depuração ao executar seu aplicativo em um emulador interativamente (durante o desenvolvimento, por exemplo), faça o seguinte:

  1. Em seu módulo (app-level) arquivo Gradle (geralmente app/build.gradle ), declarar a dependência para o App Verifique biblioteca Android:

    Java

    dependencies {
        implementation 'com.google.firebase:firebase-appcheck-debug:16.0.0-beta03'
    }
    

    Kotlin + KTX

    dependencies {
        implementation 'com.google.firebase:firebase-appcheck-debug:16.0.0-beta03'
    }
    
  2. Em sua compilação de depuração, configure App Check para usar a fábrica do provedor de depuração:

    Java

    FirebaseApp.initializeApp(/*context=*/ this);
    FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
    firebaseAppCheck.installAppCheckProviderFactory(
            DebugAppCheckProviderFactory.getInstance());

    Kotlin + KTX

    FirebaseApp.initializeApp(/*context=*/this)
    val firebaseAppCheck = FirebaseAppCheck.getInstance()
    firebaseAppCheck.installAppCheckProviderFactory(
        DebugAppCheckProviderFactory.getInstance()
    )
  3. Inicie o aplicativo e acione uma chamada para um serviço de back-end do Firebase. Um token de depuração local será registrado quando o SDK 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
  4. Nos Configurações do projeto> App check seção do console Firebase, escolha gerenciar tokens de depuração no menu de estouro de seu aplicativo. Em seguida, registre o token de depuração que você registrou 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, é fundamental 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.

Use o provedor de depuração para teste de unidade em um ambiente de CI

Para usar o provedor de depuração para teste de unidade em um ambiente de integração contínua (CI), faça o seguinte:

  1. Nos Configurações do projeto> App check seção do console Firebase, escolha gerenciar tokens de depuração no menu de estouro de seu aplicativo. Em seguida, crie um novo token de depuração. Você precisará do token na próxima etapa.

    Como esse token permite acesso aos recursos do Firebase sem um dispositivo válido, é fundamental 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.

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

  2. Adicionar a depuração símbolo que você acabou de criar para armazenamento de chave segura do seu sistema CI (por exemplo, GitHub Acções segredos criptografados ou de Travis CI variáveis criptografados ).

  3. Se necessário, configure seu sistema de CI para disponibilizar seu token de depuração no ambiente de CI como uma variável de ambiente. Nome da variável algo como APP_CHECK_DEBUG_TOKEN_FROM_CI .

  4. Em seu módulo (app-level) arquivo Gradle (geralmente app/build.gradle ):

    1. Declare a dependência de teste para a biblioteca de depuração Android App Check:

      Java

      dependencies {
          androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:16.0.0-beta03'
      }
      

      Kotlin + KTX

      dependencies {
          androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:16.0.0-beta03'
      }
      
    2. Adicione o seguinte à configuração de sua variante de compilação de CI:

      testInstrumentationRunnerArgument "firebaseAppCheckDebugSecret", System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ''
      
  5. Em suas classes de teste, use o DebugAppCheckTestHelper para embrulhar qualquer código que precisa de uma App Verifique token:

    Java

    @RunWith(AndroidJunit4.class)
    public class YourTests {
        private final DebugAppCheckTestHelper debugAppCheckTestHelper =
                DebugAppCheckTestHelper.fromInstrumentationArgs();
    
        @Test
        public void testWithDefaultApp() {
            debugAppCheckTestHelper.withDebugProvider(() -> {
                // Test code that requires a debug AppCheckToken.
            });
        }
    
        @Test
        public void testWithNonDefaultApp() {
            debugAppCheckTestHelper.withDebugProvider(
                    FirebaseApp.getInstance("nonDefaultApp"),
                    () -> {
                        // Test code that requires a debug AppCheckToken.
                    });
        }
    }
    

    Kotlin + KTX

    @RunWith(AndroidJunit4::class)
    class MyTests {
        private val debugAppCheckTestHelper =
            DebugAppCheckTestHelper.fromInstrumentationArgs()
    
        @Test
        fun testWithDefaultApp() {
            debugAppCheckTestHelper.withDebugProvider {
                // Test code that requires a debug AppCheckToken.
            }
        }
    
        @Test
        fun testWithNonDefaultApp() {
            debugAppCheckTestHelper.withDebugProvider(
                FirebaseApp.getInstance("nonDefaultApp")
            ) {
                // Test code that requires a debug AppCheckToken.
            }
        }
    }
    

Quando seu aplicativo é executado em um ambiente de CI, os serviços de back-end do Firebase aceitam o token enviado como válido.