Jika, setelah Anda mendaftarkan aplikasi untuk App Check, Anda ingin menjalankan aplikasi di lingkungan yang biasanya tidak diklasifikasikan sebagai valid oleh App Check, seperti emulator selama pengembangan, atau dari lingkungan continuous integration (CI), Anda dapat buat build debug aplikasi Anda yang menggunakan penyedia debug App Check alih-alih penyedia pengesahan nyata.
Gunakan penyedia debug di emulator
Untuk menggunakan penyedia debug saat menjalankan aplikasi Anda di emulator secara interaktif (selama pengembangan, misalnya), lakukan hal berikut:
Dalam file Gradle modul (tingkat aplikasi) Anda (biasanya
app/build.gradle
), nyatakan dependensi untuk pustaka Android App Check:Java
dependencies { implementation 'com.google.firebase:firebase-appcheck-debug:16.0.0' }
Kotlin+KTX
dependencies { implementation 'com.google.firebase:firebase-appcheck-debug:16.0.0' }
Di build debug Anda, konfigurasikan App Check untuk menggunakan pabrik penyedia debug:
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() )
Luncurkan aplikasi dan picu panggilan ke layanan backend Firebase. Token debug lokal akan dicatat ketika SDK mencoba mengirim permintaan ke backend. Sebagai contoh:
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
Di bagian Pemeriksaan Aplikasi di Firebase console, pilih Kelola token debug dari menu luapan aplikasi Anda. Kemudian, daftarkan token debug yang Anda login di langkah sebelumnya.
Setelah Anda mendaftarkan token, layanan backend Firebase akan menerimanya sebagai token yang valid.
Karena token ini memungkinkan akses ke sumber daya Firebase Anda tanpa perangkat yang valid, Anda harus merahasiakannya. Jangan komit ke repositori publik, dan jika token terdaftar pernah disusupi, segera cabut di Firebase console.
Gunakan penyedia debug untuk pengujian unit di lingkungan CI
Untuk menggunakan penyedia debug untuk pengujian unit di lingkungan continuous integration (CI), lakukan hal berikut:
Di bagian Pemeriksaan Aplikasi di Firebase console, pilih Kelola token debug dari menu luapan aplikasi Anda. Kemudian, buat token debug baru. Anda akan membutuhkan token di langkah berikutnya.
Karena token ini memungkinkan akses ke sumber daya Firebase Anda tanpa perangkat yang valid, Anda harus merahasiakannya. Jangan komit ke repositori publik, dan jika token terdaftar pernah disusupi, segera cabut di Firebase console.
Tambahkan token debug yang baru saja Anda buat ke penyimpanan kunci aman sistem CI Anda (misalnya, rahasia terenkripsi GitHub Actions atau variabel terenkripsi Travis CI).
Jika perlu, konfigurasikan sistem CI Anda untuk membuat token debug Anda tersedia dalam lingkungan CI sebagai variabel lingkungan. Beri nama variabel seperti
APP_CHECK_DEBUG_TOKEN_FROM_CI
.Di modul Anda (tingkat aplikasi) file Gradle (biasanya
app/build.gradle
):Deklarasikan dependensi pengujian untuk library debug App Check Android:
Java
dependencies { androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:16.0.0' }
Kotlin+KTX
dependencies { androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:16.0.0' }
Tambahkan yang berikut ini ke konfigurasi varian build CI Anda:
testInstrumentationRunnerArgument "firebaseAppCheckDebugSecret", System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ''
Di kelas pengujian Anda, gunakan
DebugAppCheckTestHelper
untuk membungkus kode apa pun yang memerlukan token 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. } } }
Saat aplikasi Anda berjalan di lingkungan CI, layanan backend Firebase akan menerima token yang dikirim sebagai valid.