Jika Anda telah mendaftarkan aplikasi untuk App Check dan ingin menjalankan aplikasi di lingkungan yang biasanya tidak akan diklasifikasikan sebagai valid oleh App Check, seperti emulator selama pengembangan atau dari lingkungan continuous integration (CI), Anda dapat membuat build debug aplikasi yang menggunakan penyedia debug App Check, bukan penyedia pengesahan sungguhan.
Menggunakan penyedia debug di emulator
Untuk menggunakan penyedia debug saat menjalankan aplikasi di emulator secara interaktif (misalnya, selama pengembangan), lakukan hal berikut:
Dalam file Gradle modul (tingkat aplikasi) (biasanya
<project>/<app-module>/build.gradle.kts
atau<project>/<app-module>/build.gradle
), tambahkan dependensi untuk library App Check untuk Android. Sebaiknya gunakan Firebase Android BoM untuk mengontrol pembuatan versi library.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.3.0")) // 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") }
Dengan menggunakan Firebase Android BoM, aplikasi Anda akan selalu menggunakan versi library Android Firebase yang kompatibel.
(Alternatif) Tambahkan dependensi library Firebase tanpa menggunakan BoM
Jika memilih untuk tidak menggunakan Firebase BoM, Anda harus menentukan setiap versi library Firebase di baris dependensinya.
Perlu diperhatikan bahwa jika Anda menggunakan beberapa library Firebase di aplikasi, sebaiknya gunakan BoM untuk mengelola versi library, yang memastikan bahwa semua versi kompatibel.
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") }
Pada build debug, konfigurasi App Check untuk menggunakan factory penyedia debug:
Kotlin+KTX
Firebase.initialize(context = this) Firebase.appCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance(), )
Java
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance());
Luncurkan aplikasi dan picu panggilan ke layanan backend Firebase. Token debug lokal akan dicatat dalam log saat SDK mencoba mengirim permintaan ke backend. 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 App Check pada Firebase console, pilih Manage debug tokens dari menu tambahan aplikasi. Kemudian daftarkan token debug yang Anda catat dalam log di langkah sebelumnya.
Setelah Anda mendaftarkan token, layanan backend Firebase akan menerimanya sebagai valid.
Karena token ini memungkinkan akses ke resource Firebase Anda tanpa perangkat yang valid, Anda harus menjaga kerahasiaannya. Jangan meng-commit token ke repositori publik, dan jika token yang terdaftar pernah terungkap kerahasiaannya, segera cabut token tersebut di Firebase console.
Menggunakan penyedia debug untuk pengujian unit di lingkungan CI
Agar dapat menggunakan penyedia debug untuk pengujian unit di lingkungan continuous integration (CI), lakukan hal berikut:
Di bagian App Check pada Firebase console, pilih Manage debug tokens dari menu tambahan aplikasi. Kemudian, buat token debug baru. Anda memerlukan token tersebut di langkah berikutnya.
Karena token ini memungkinkan akses ke resource Firebase Anda tanpa perangkat yang valid, Anda harus menjaga kerahasiaannya. Jangan meng-commit token ke repositori publik, dan jika token yang terdaftar pernah terungkap kerahasiaannya, segera cabut token tersebut di Firebase console.
Tambahkan token debug yang baru saja dibuat ke penyimpanan kunci yang aman di sistem CI Anda (misalnya, rahasia terenkripsi GitHub Action atau variabel terenkripsi Travis CI).
Jika perlu, konfigurasikan sistem CI Anda untuk menyediakan token debug dalam lingkungan CI sebagai variabel lingkungan. Beri nama variabel, seperti
APP_CHECK_DEBUG_TOKEN_FROM_CI
.Dalam file Gradle modul (tingkat aplikasi) (biasanya
<project>/<app-module>/build.gradle.kts
atau<project>/<app-module>/build.gradle
), tambahkan dependensi untuk library App Check untuk Android. Sebaiknya gunakan Firebase Android BoM untuk mengontrol pembuatan versi library.Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.3.0")) // 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") }
Dengan menggunakan Firebase Android BoM, aplikasi Anda akan selalu menggunakan versi library Android Firebase yang kompatibel.
(Alternatif) Tambahkan dependensi library Firebase tanpa menggunakan BoM
Jika memilih untuk tidak menggunakan Firebase BoM, Anda harus menentukan setiap versi library Firebase di baris dependensinya.
Perlu diperhatikan bahwa jika Anda menggunakan beberapa library Firebase di aplikasi, sebaiknya gunakan BoM untuk mengelola versi library, yang memastikan bahwa semua versi kompatibel.
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.3.0")) // 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") }
Dengan menggunakan Firebase Android BoM, aplikasi Anda akan selalu menggunakan versi library Android Firebase yang kompatibel.
(Alternatif) Tambahkan dependensi library Firebase tanpa menggunakan BoM
Jika memilih untuk tidak menggunakan Firebase BoM, Anda harus menentukan setiap versi library Firebase di baris dependensinya.
Perlu diperhatikan bahwa jika Anda menggunakan beberapa library Firebase di aplikasi, sebaiknya gunakan BoM untuk mengelola versi library, yang memastikan bahwa semua versi kompatibel.
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") }
Tambahkan hal berikut ke konfigurasi varian build CI Anda:
testInstrumentationRunnerArguments["firebaseAppCheckDebugSecret"] = System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ""
Di class pengujian, gunakan
DebugAppCheckTestHelper
untuk menggabungkan kode yang memerlukan token App Check: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. }); } }
Saat aplikasi Anda berjalan di lingkungan CI, layanan backend Firebase akan menerima token yang dikirimkan aplikasi sebagai valid.