Jeśli po zarejestrowaniu aplikacji na potrzeby Sprawdzania aplikacji chcesz uruchamiać ją w środowisku, którego Sprawdzanie aplikacji zwykle nie klasyfikowałoby jako prawidłowe, np. w emulatorze podczas programowania lub w środowisku ciągłej integracji (CI), możesz utworzyć kompilację do debugowania aplikacji, która korzysta z dostawcy debugowania Sprawdzania aplikacji zamiast prawdziwego dostawcy atestu.
Używanie dostawcy debugowania w emulatorze
Aby użyć dostawcy debugowania podczas interaktywnego uruchamiania aplikacji w emulatorze (np. w trakcie programowania), wykonaj te czynności:
W pliku Gradle modułu (na poziomie aplikacji) (zwykle
<project>/<app-module>/build.gradle.kts
lub<project>/<app-module>/build.gradle
) dodaj zależność z biblioteką Sprawdzania aplikacji na Androida. Do kontrolowania obsługi wersji biblioteki zalecamy używanie funkcji Firebase Android BoM.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.1.1")) // 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") }
Dzięki użyciu BoM Firebase Android BoM Twoja aplikacja zawsze używa zgodnych wersji bibliotek Firebase na Androida.
(Alternatywnie) Dodawanie zależności bibliotek Firebase bez korzystania z BM
Jeśli nie chcesz używać Firebase BoM, musisz określić każdą wersję biblioteki Firebase w wierszu zależności.
Pamiętaj, że jeśli w swojej aplikacji używasz wielu bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami bibliotek. Dzięki temu będziesz mieć pewność, że wszystkie wersje są zgodne.
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:18.0.0") }
W kompilacji do debugowania skonfiguruj Sprawdzanie aplikacji tak, aby używało 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());
Uruchom aplikację i wywołaj wywołanie usługi backendu Firebase. Gdy pakiet SDK spróbuje wysłać żądanie do backendu, lokalny token debugowania zostanie zarejestrowany. Przykład:
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
W sekcji Sprawdzanie aplikacji w konsoli Firebase wybierz z rozszerzonego menu aplikacji Zarządzaj tokenami debugowania. Następnie zarejestruj token debugowania zapisany w poprzednim kroku.
Gdy zarejestrujesz token, usługi backendu Firebase uznają go za prawidłowy.
Token ten umożliwia dostęp do zasobów Firebase bez prawidłowego urządzenia, dlatego należy zadbać o ich prywatność. Nie podawaj go w publicznym repozytorium, a jeśli zarejestrowany token zostanie kiedykolwiek przejęty, możesz go natychmiast unieważnić w konsoli Firebase.
Używanie dostawcy debugowania do testowania jednostkowego w środowisku CI
Aby użyć dostawcy debugowania do testowania jednostkowego w środowisku ciągłej integracji (CI), wykonaj te czynności:
W sekcji Sprawdzanie aplikacji w konsoli Firebase wybierz z rozszerzonego menu aplikacji Zarządzaj tokenami debugowania. Następnie utwórz nowy token debugowania. Token będzie potrzebny w następnym kroku.
Umożliwia on dostęp do zasobów Firebase bez prawidłowego urządzenia, dlatego ważne jest, aby dbać o ich prywatność. Nie podawaj go w publicznym repozytorium, a jeśli zarejestrowany token zostanie kiedykolwiek przejęty, możesz go natychmiast unieważnić w konsoli Firebase.
Dodaj utworzony przed chwilą token debugowania do bezpiecznego magazynu kluczy systemu CI (np. zaszyfrowane obiekty tajne w usłudze GitHub Actions lub zaszyfrowane zmienne Travis CI).
W razie potrzeby skonfiguruj system CI tak, aby token debugowania był dostępny w środowisku CI jako zmienna środowiskowa. Nazwij zmienną np.
APP_CHECK_DEBUG_TOKEN_FROM_CI
.W pliku Gradle modułu (na poziomie aplikacji) (zwykle
<project>/<app-module>/build.gradle.kts
lub<project>/<app-module>/build.gradle
) dodaj zależność z biblioteką Sprawdzania aplikacji na Androida. Do kontrolowania obsługi wersji biblioteki zalecamy używanie funkcji Firebase Android BoM.Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.1.1")) // 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") }
Dzięki użyciu BoM Firebase Android BoM Twoja aplikacja zawsze używa zgodnych wersji bibliotek Firebase na Androida.
(Alternatywnie) Dodawanie zależności bibliotek Firebase bez korzystania z BM
Jeśli nie chcesz używać Firebase BoM, musisz określić każdą wersję biblioteki Firebase w wierszu zależności.
Pamiętaj, że jeśli w swojej aplikacji używasz wielu bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami bibliotek. Dzięki temu będziesz mieć pewność, że wszystkie wersje są zgodne.
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:18.0.0") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.1.1")) // 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") }
Dzięki użyciu BoM Firebase Android BoM Twoja aplikacja zawsze używa zgodnych wersji bibliotek Firebase na Androida.
(Alternatywnie) Dodawanie zależności bibliotek Firebase bez korzystania z BM
Jeśli nie chcesz używać Firebase BoM, musisz określić każdą wersję biblioteki Firebase w wierszu zależności.
Pamiętaj, że jeśli w swojej aplikacji używasz wielu bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami bibliotek. Dzięki temu będziesz mieć pewność, że wszystkie wersje są zgodne.
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:18.0.0") }
Dodaj do konfiguracji wariantu kompilacji CI:
testInstrumentationRunnerArguments["firebaseAppCheckDebugSecret"] = System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ""
W klasach testowych użyj
DebugAppCheckTestHelper
do pakowania kodu, który wymaga 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 aplikacja działa w środowisku CI, usługi backendu Firebase będą akceptować wysłany token jako prawidłowy.