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

Użyj sprawdzania aplikacji u dostawcy debugowania w systemie Android

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Jeśli po zarejestrowaniu aplikacji do sprawdzania aplikacji chcesz uruchomić aplikację w środowisku, którego Sprawdzanie aplikacji normalnie nie klasyfikuje jako prawidłowe, takim jak emulator podczas tworzenia lub ze środowiska ciągłej integracji (CI), możesz utwórz kompilację debugowania swojej aplikacji, która używa dostawcy debugowania sprawdzania aplikacji zamiast rzeczywistego dostawcy poświadczania.

Użyj dostawcy debugowania w emulatorze

Aby użyć dostawcy debugowania podczas interaktywnego uruchamiania aplikacji w emulatorze (na przykład podczas programowania), wykonaj następujące czynności:

  1. W swoim module (app-level) pliku Gradle (zazwyczaj app/build.gradle ) zadeklaruj zależność dla biblioteki App Check Android:

    Java

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

    Kotlin+KTX

    dependencies {
        implementation 'com.google.firebase:firebase-appcheck-debug:16.1.0'
    }
    
  2. W kompilacji debugowania skonfiguruj Sprawdzanie aplikacji, aby korzystała z fabryki dostawcy debugowania:

    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. Uruchom aplikację i nawiąż połączenie z usługą backendu Firebase. Lokalny token debugowania zostanie zarejestrowany, gdy SDK spróbuje wysłać żądanie do zaplecza. Na przykład:

    D DebugAppCheckProvider: Enter this debug secret into the allow list in
    the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
  4. W sekcji Sprawdzanie aplikacji w konsoli Firebase wybierz Zarządzaj tokenami debugowania z rozszerzonego menu aplikacji. Następnie zarejestruj token debugowania zalogowany w poprzednim kroku.

    Zrzut ekranu pozycji menu Zarządzaj tokenami debugowania

Gdy zarejestrujesz token, usługi backendu Firebase zaakceptują go jako prawidłowy.

Ponieważ ten token umożliwia dostęp do zasobów Firebase bez ważnego urządzenia, ważne jest, aby zachować jego prywatność. Nie przypisuj go do publicznego repozytorium, a jeśli zarejestrowany token zostanie kiedykolwiek naruszony, natychmiast odwołaj go w konsoli Firebase.

Użyj dostawcy debugowania do testów jednostkowych w środowisku CI

Aby użyć dostawcy debugowania do testowania jednostkowego w środowisku ciągłej integracji (CI), wykonaj następujące czynności:

  1. W sekcji Sprawdzanie aplikacji w konsoli Firebase wybierz Zarządzaj tokenami debugowania z rozszerzonego menu aplikacji. Następnie utwórz nowy token debugowania. W następnym kroku będziesz potrzebować tokena.

    Ponieważ ten token umożliwia dostęp do zasobów Firebase bez ważnego urządzenia, ważne jest, aby zachować jego prywatność. Nie przypisuj go do publicznego repozytorium, a jeśli zarejestrowany token zostanie kiedykolwiek naruszony, natychmiast odwołaj go w konsoli Firebase.

    Zrzut ekranu pozycji menu Zarządzaj tokenami debugowania

  2. Dodaj właśnie utworzony token debugowania do bezpiecznego magazynu kluczy systemu CI (na przykład zaszyfrowane klucze tajne GitHub Actions lub zaszyfrowane zmienne Travis CI ).

  3. W razie potrzeby skonfiguruj system CI tak, aby token debugowania był dostępny w środowisku CI jako zmienna środowiskowa. Nazwij zmienną APP_CHECK_DEBUG_TOKEN_FROM_CI .

  4. W twoim module (na poziomie aplikacji) plik Gradle (zwykle app/build.gradle ):

    1. Zadeklaruj zależność testową dla biblioteki debugowania App Check Android:

      Java

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

      Kotlin+KTX

      dependencies {
          androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:16.1.0'
      }
      
    2. Dodaj następujące elementy do konfiguracji wariantu kompilacji CI:

      testInstrumentationRunnerArgument "firebaseAppCheckDebugSecret", System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ''
      
  5. W klasach testowych użyj DebugAppCheckTestHelper , aby otoczyć dowolny kod, który wymaga tokenu App Check:

    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.
            }
        }
    }
    

Gdy Twoja aplikacja działa w środowisku CI, usługi backendu Firebase zaakceptują wysyłany przez nią token jako prawidłowy.