Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Gunakan App Check dengan penyedia debug di Android

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 modul Anda (app-tingkat) File Gradle (biasanya app/build.gradle ), menyatakan ketergantungan untuk App Periksa perpustakaan Android:

    Jawa

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

    Kotlin+KTX

    dependencies {
        implementation 'com.google.firebase:firebase-appcheck-debug:16.0.0-beta03'
    }
    
  2. Di build debug Anda, konfigurasikan App Check untuk menggunakan pabrik penyedia debug:

    Jawa

    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. Dalam Pengaturan Proyek> App Periksa bagian dari Firebase konsol, pilih Manage token debug dari menu luapan 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 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. Dalam Pengaturan Proyek> App Periksa bagian dari Firebase konsol, pilih Manage 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.

    Tangkapan layar item menu Kelola Token Debug

  2. Menambahkan debug token yang baru saja dibuat untuk penyimpanan kunci aman sistem CI Anda (misalnya, GitHub Actions' dienkripsi rahasia atau Travis CI variabel dienkripsi ).

  3. Jika perlu, konfigurasikan sistem CI Anda untuk membuat token debug Anda tersedia dalam lingkungan CI sebagai variabel lingkungan. Nama variabel seperti APP_CHECK_DEBUG_TOKEN_FROM_CI .

  4. Dalam modul Anda (app-tingkat) File Gradle (biasanya app/build.gradle ):

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

      Jawa

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

      Kotlin+KTX

      dependencies {
          androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:16.0.0-beta03'
      }
      
    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 apapun yang membutuhkan App Periksa tanda:

    Jawa

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