Skorzystaj z funkcji sprawdzania aplikacji u dostawcy debugowania w systemie Android

Jeśli po zarejestrowaniu aplikacji w Kontroli aplikacji chcesz uruchomić ją w środowisku, którego weryfikacja aplikacji normalnie nie sklasyfikowałaby jako prawidłowe, na przykład w emulatorze podczas programowania lub w środowisku ciągłej integracji (CI), możesz utwórz kompilację debugowania swojej aplikacji, która korzysta z dostawcy debugowania App Check zamiast prawdziwego dostawcy zaświadczenia.

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 pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle ) dodaj zależność dla App Check biblioteka dla Androida. Zalecamy używanie Firebase Android BoM do kontrolowania wersji bibliotek.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:32.7.2"))
    
        // Add the dependencies for the App Check libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-appcheck-debug")
    }
    

    Korzystając z Firebase Android BoM , Twoja aplikacja będzie zawsze korzystać z kompatybilnych wersji bibliotek Firebase Android.

    (Alternatywa) Dodaj zależności biblioteki Firebase bez użycia BoM

    Jeśli zdecydujesz się nie używać BoM Firebase, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.

    Pamiętaj, że jeśli używasz w swojej aplikacji wielu bibliotek Firebase, zdecydowanie zalecamy używanie BoM do zarządzania wersjami bibliotek, co gwarantuje, że wszystkie wersje będą kompatybilne.

    dependencies {
        // Add the dependencies for the App Check libraries
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-appcheck-debug:17.1.2")
    }
    
    Szukasz modułu bibliotecznego specyficznego dla Kotlina? Począwszy od października 2023 r. (Firebase BoM 32.5.0) zarówno programiści Kotlin, jak i Java mogą polegać na głównym module biblioteki (więcej informacji można znaleźć w często zadawanych pytaniach dotyczących tej inicjatywy ).

  2. W kompilacji debugowania skonfiguruj Sprawdzanie aplikacji tak, aby korzystała z fabryki dostawcy debugowania:

    Kotlin+KTX

    Firebase.initialize(context = this)
    Firebase.appCheck.installAppCheckProviderFactory(
        DebugAppCheckProviderFactory.getInstance(),
    )

    Java

    FirebaseApp.initializeApp(/*context=*/ this);
    FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
    firebaseAppCheck.installAppCheckProviderFactory(
            DebugAppCheckProviderFactory.getInstance());
  3. Uruchom aplikację i wywołaj usługę zaplecza Firebase. Lokalny token debugowania zostanie zarejestrowany, gdy zestaw 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 opcję Zarządzaj tokenami debugowania z rozszerzonego menu aplikacji. Następnie zarejestruj token debugowania zarejestrowany w poprzednim kroku.

    Zrzut ekranu przedstawiający element menu Zarządzaj tokenami debugowania

Po zarejestrowaniu tokena usługi zaplecza Firebase zaakceptują go jako ważny.

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

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

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

  1. W sekcji Sprawdzanie aplikacji w konsoli Firebase wybierz opcję Zarządzaj tokenami debugowania z rozszerzonego menu aplikacji. Następnie utwórz nowy token debugowania. Token będzie Ci potrzebny w następnym kroku.

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

    Zrzut ekranu przedstawiający element menu Zarządzaj tokenami debugowania

  2. Dodaj właśnie utworzony token debugowania do bezpiecznego magazynu kluczy systemu CI (na przykład zaszyfrowanych kluczy tajnych GitHub Actions lub zaszyfrowanych zmiennych Travis CI).

  3. W razie potrzeby skonfiguruj system CI tak, aby token debugowania był dostępny w środowisku CI jako zmienna środowiskowa. Nadaj zmiennej nazwę podobną do APP_CHECK_DEBUG_TOKEN_FROM_CI .

  4. W pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle ) dodaj zależność dla App Check biblioteka dla Androida. Zalecamy używanie Firebase Android BoM do kontrolowania wersji bibliotek.

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:32.7.2"))
    
        // Add the dependency for the App Check library
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-appcheck-debug")
    }
    

    Korzystając z Firebase Android BoM , Twoja aplikacja będzie zawsze korzystać z kompatybilnych wersji bibliotek Firebase Android.

    (Alternatywa) Dodaj zależności biblioteki Firebase bez użycia BoM

    Jeśli zdecydujesz się nie używać BoM Firebase, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.

    Pamiętaj, że jeśli używasz w swojej aplikacji wielu bibliotek Firebase, zdecydowanie zalecamy używanie BoM do zarządzania wersjami bibliotek, co gwarantuje, że wszystkie wersje będą kompatybilne.

    dependencies {
        // Add the dependency for the App Check library
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-appcheck-debug:17.1.2")
    }
    
    Szukasz modułu bibliotecznego specyficznego dla Kotlina? Począwszy od października 2023 r. (Firebase BoM 32.5.0) zarówno programiści Kotlin, jak i Java mogą polegać na głównym module biblioteki (więcej informacji można znaleźć w często zadawanych pytaniach dotyczących tej inicjatywy ).

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:32.7.2"))
    
        // Add the dependency for the App Check library
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-appcheck-debug")
    }
    

    Korzystając z Firebase Android BoM , Twoja aplikacja będzie zawsze korzystać z kompatybilnych wersji bibliotek Firebase Android.

    (Alternatywa) Dodaj zależności biblioteki Firebase bez użycia BoM

    Jeśli zdecydujesz się nie używać BoM Firebase, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.

    Pamiętaj, że jeśli używasz w swojej aplikacji wielu bibliotek Firebase, zdecydowanie zalecamy używanie BoM do zarządzania wersjami bibliotek, co gwarantuje, że wszystkie wersje będą kompatybilne.

    dependencies {
        // Add the dependency for the App Check library
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-appcheck-debug:17.1.2")
    }
    
    Szukasz modułu bibliotecznego specyficznego dla Kotlina? Począwszy od października 2023 r. (Firebase BoM 32.5.0) zarówno programiści Kotlin, jak i Java mogą polegać na głównym module biblioteki (więcej informacji można znaleźć w często zadawanych pytaniach dotyczących tej inicjatywy ).

  5. Dodaj następujące elementy do konfiguracji wariantu kompilacji CI:

    testInstrumentationRunnerArguments["firebaseAppCheckDebugSecret"] =
        System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ""
    
  6. W klasach testowych użyj DebugAppCheckTestHelper , aby zawinąć dowolny kod wymagający tokena sprawdzania aplikacji:

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

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

Gdy Twoja aplikacja działa w środowisku CI, usługi zaplecza Firebase akceptują wysyłany token jako prawidłowy.