Bergabunglah dengan kami secara langsung dan online di Firebase Summit pada 18 Oktober 2022. Pelajari cara Firebase dapat membantu Anda mempercepat pengembangan aplikasi, merilis aplikasi dengan percaya diri, dan menentukan skala dengan mudah. Daftar sekarang

Gunakan App Check dengan penyedia debug di Android

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

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:

  1. 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.2'
    }
    

    Kotlin+KTX

    dependencies {
        implementation 'com.google.firebase:firebase-appcheck-debug:16.0.2'
    }
    
  2. 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()
    )
  3. 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
  4. Di bagian Pemeriksaan Aplikasi di Firebase console, pilih Kelola token debug dari menu tambahan aplikasi Anda. Kemudian, daftarkan token debug yang Anda login di langkah sebelumnya.

    Tangkapan layar item menu Kelola Token Debug

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:

  1. Di bagian Pemeriksaan Aplikasi di Firebase console, pilih Kelola token debug dari menu tambahan 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.

    Tangkapan layar item menu Kelola Token Debug

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

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

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

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

      Java

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

      Kotlin+KTX

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

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