Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Lindungi kredensial Cloud aplikasi Android Firebase ML Anda

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

Jika aplikasi Android Anda menggunakan salah satu API cloud Firebase ML, sebelum meluncurkan aplikasi dalam produksi, Anda harus mengambil beberapa langkah tambahan untuk mencegah akses API yang tidak sah.

Untuk aplikasi produksi Anda, Anda akan memastikan bahwa hanya klien yang diautentikasi yang dapat mengakses layanan cloud. (Perhatikan bahwa hanya perangkat yang tidak di-rooting yang dapat mengautentikasi menggunakan metode yang dijelaskan.)

Kemudian, Anda akan membuat kunci API khusus debug yang dapat Anda gunakan untuk kenyamanan selama pengujian dan pengembangan.

1. Daftarkan aplikasi produksi Anda dengan Firebase

Pertama, daftarkan aplikasi produksi Anda dengan Firebase.

  1. Pastikan Anda memiliki tanda tangan SHA-1 aplikasi Anda. Lihat Mengautentikasi klien Anda untuk mempelajari caranya.

  2. Buka pengaturan Anda proyek di konsol Firebase, lalu pilih tab Pengaturan .

  3. Gulir ke bawah ke kartu Aplikasi Anda , lalu pilih aplikasi Android Anda.

  4. Tambahkan tanda tangan SHA-1 aplikasi Anda ke informasi aplikasi Anda.

2. Batasi cakupan kunci API Anda

Selanjutnya, konfigurasikan kunci API Anda yang ada untuk melarang akses ke Cloud Vision API:

  1. Buka halaman Kredensial Google Cloud Console. Saat diminta, pilih proyek Anda.

  2. Untuk setiap kunci API yang ada dalam daftar, buka tampilan pengeditan.

  3. Di bagian Pembatasan API , pilih Batasi kunci , lalu tambahkan ke daftar semua API yang Anda inginkan agar dapat diakses oleh kunci API. Pastikan untuk tidak menyertakan Cloud Vision API.

    Saat Anda mengonfigurasi pembatasan API kunci API , Anda secara eksplisit mendeklarasikan API yang aksesnya dimiliki kunci tersebut. Secara default, ketika bagian pembatasan API telah dipilih Jangan batasi kunci , kunci API dapat digunakan untuk mengakses API apa pun yang diaktifkan untuk proyek tersebut.

Sekarang, kunci API Anda yang ada tidak akan memberikan akses ke layanan cloud ML, tetapi setiap kunci akan terus berfungsi untuk API apa pun yang Anda tambahkan ke daftar pembatasan API -nya.

Perhatikan bahwa jika Anda mengaktifkan API tambahan di masa mendatang, Anda harus menambahkannya ke daftar pembatasan API untuk kunci API yang berlaku.

3. Buat dan gunakan kunci API khusus debug

Terakhir, buat kunci API baru untuk digunakan hanya untuk pengembangan. Firebase ML dapat menggunakan kunci API ini untuk mengakses layanan Google Cloud di lingkungan yang tidak memungkinkan autentikasi aplikasi, seperti saat dijalankan di emulator.

  1. Buat kunci API baru yang akan digunakan untuk pengembangan:

    1. Buka halaman Kredensial Google Cloud Console. Saat diminta, pilih proyek Anda.

    2. Klik Buat kredensial > kunci API dan catat kunci API baru. Kunci ini memungkinkan akses API dari aplikasi yang tidak diautentikasi, jadi jaga kerahasiaan kunci ini .

  2. Untuk memastikan kunci API debug baru tidak bocor dengan aplikasi Anda yang dirilis, tentukan kunci API debug dalam file manifes Android yang hanya digunakan untuk build debug:

    1. Jika Anda belum memiliki manifes debug, buat satu dengan mengeklik File > Baru > Lainnya > File Manifes Android dan memilih debug dari kumpulan sumber target.

    2. Dalam manifes debug, tambahkan deklarasi berikut:

      <application>
      <meta-data
          android:name="com.firebase.ml.cloud.ApiKeyForDebug"
          android:value="your-debug-api-key" />
      </application>
      
  3. Di aplikasi Anda, konfigurasikan Firebase ML untuk menggunakan pencocokan sidik jari sertifikat untuk mengautentikasi klien Anda dalam produksi dan untuk menggunakan kunci API—kunci debug—hanya di build debug:

    Java

    FirebaseVisionCloudImageLabelerOptions.Builder optionsBuilder =
            new FirebaseVisionCloudImageLabelerOptions.Builder();
    if (!BuildConfig.DEBUG) {
        // Requires physical, non-rooted device:
        optionsBuilder.enforceCertFingerprintMatch();
    }
    
    // Set other options. For example:
    optionsBuilder.setConfidenceThreshold(0.8f);
    // ...
    
    // And lastly:
    FirebaseVisionCloudImageLabelerOptions options = optionsBuilder.build();
    FirebaseVision.getInstance().getCloudImageLabeler(options).processImage(myImage);

    Kotlin+KTX

    val optionsBuilder = FirebaseVisionCloudImageLabelerOptions.Builder()
    if (!BuildConfig.DEBUG) {
        // Requires physical, non-rooted device:
        optionsBuilder.enforceCertFingerprintMatch()
    }
    
    // Set other options. For example:
    optionsBuilder.setConfidenceThreshold(0.8f)
    // ...
    
    // And lastly:
    val options = optionsBuilder.build()
    FirebaseVision.getInstance().getCloudImageLabeler(options).processImage(myImage)

Langkah selanjutnya

Lihat daftar periksa peluncuran untuk informasi tentang mempersiapkan aplikasi Anda untuk diluncurkan saat menggunakan fitur Firebase lainnya.