Firebase hadir kembali di Google I/O pada 10 Mei. Daftar sekarang

Menggunakan App Check dengan penyedia debug di Android

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Jika Anda telah mendaftarkan aplikasi untuk App Check lalu 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:

  1. Dalam file Gradle modul (level aplikasi) Anda (biasanya app/build.gradle), deklarasikan dependensi untuk library Android App Check:

    Kotlin+KTX

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

    Java

    dependencies {
        implementation 'com.google.firebase:firebase-appcheck-debug:16.1.2'
    }
    
  2. Pada build debug, konfigurasikan App Check untuk menggunakan factory penyedia debug:

    Kotlin+KTX

    FirebaseApp.initializeApp(/*context=*/this)
    val firebaseAppCheck = FirebaseAppCheck.getInstance()
    firebaseAppCheck.installAppCheckProviderFactory(
        DebugAppCheckProviderFactory.getInstance()
    )

    Java

    FirebaseApp.initializeApp(/*context=*/ this);
    FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
    firebaseAppCheck.installAppCheckProviderFactory(
            DebugAppCheckProviderFactory.getInstance());
  3. 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
  4. Di bagian App Check di Firebase console, pilih Manage debug tokens dari menu tambahan aplikasi. Lalu, daftarkan token debug yang Anda catat dalam log di langkah sebelumnya.

    Screenshot item menu Manage Debug Tokens

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:

  1. Di bagian App Check di 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.

    Screenshot item menu Manage Debug Tokens

  2. 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).

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

  4. Dalam file Gradle modul (level aplikasi) (biasanya app/build.gradle):

    1. Deklarasikan dependensi pengujian untuk library debug Android App Check:

      Kotlin+KTX

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

      Java

      dependencies {
          androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:16.1.2'
      }
      
    2. Tambahkan baris berikut ke konfigurasi varian build CI Anda:

      testInstrumentationRunnerArgument "firebaseAppCheckDebugSecret", System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ''
      
  5. 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.