Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Pelajari tentang menggunakan dan mengelola kunci API untuk Firebase

Kunci API adalah string unik yang digunakan untuk mengarahkan permintaan ke proyek Firebase Anda saat berinteraksi dengan layanan Firebase dan Google. Halaman ini menjelaskan informasi dasar tentang kunci API serta praktik terbaik untuk menggunakan dan mengelola kunci API dengan aplikasi Firebase.

Informasi umum tentang kunci API dan Firebase

Kunci API untuk Firebase berbeda dari kunci API biasa

Tidak seperti bagaimana kunci API biasanya digunakan, kunci API untuk layanan Firebase tidak digunakan untuk mengontrol akses ke sumber daya backend; yang hanya dapat dilakukan dengan Aturan Keamanan Firebase. Biasanya, Anda perlu menjaga kunci API dengan cermat (misalnya, dengan menggunakan layanan vault atau menyetel kunci sebagai variabel lingkungan); namun, kunci API untuk layanan Firebase boleh disertakan dalam kode atau file konfigurasi check-in.

Meskipun kunci API untuk layanan Firebase aman untuk memasukkan dalam kode, ada beberapa kasus tertentu ketika Anda harus menegakkan batas untuk kunci API Anda; misalnya, jika Anda menggunakan Firebase ML, Firebase Authentication dengan metode login email/sandi, atau Google Cloud API yang dapat ditagih. Pelajari lebih lanjut tentang kasus ini nanti di halaman ini.

Membuat kunci API

Proyek Firebase dapat memiliki banyak kunci API, tetapi setiap kunci API hanya dapat dikaitkan dengan satu proyek Firebase.

Kunci API secara otomatis dibuat oleh Firebase untuk Aplikasi Firebase Anda

Firebase secara otomatis membuat kunci API untuk proyek Anda saat Anda melakukan salah satu hal berikut:

  • Buat proyek Firebase> Browser key auto-dibuat
  • Buat Firebase iOS App> iOS key auto-dibuat
  • Buat Firebase Android App> Android key auto-dibuat

Anda juga dapat membuat kunci API Anda sendiri di Cloud Console Google , misalnya untuk pembangunan atau debugging . Pelajari lebih lanjut kapan ini mungkin direkomendasikan nanti di halaman ini.

Menemukan kunci API Anda

Anda dapat melihat dan mengelola kunci API semua proyek Anda dalam API & Layanan> Kredensial panel di Cloud Console Google.

Anda juga dapat menemukan yang API key secara otomatis dicocokkan dengan App Firebase di tempat-tempat berikut. Secara default, semua proyek Anda Firebase Apps untuk platform yang sama (iOS vs Android vs Web) akan menggunakan API key yang sama.

  • Firebase iOS Apps - Cari key sebuah aplikasi auto-cocok API di Firebase file konfigurasi, GoogleService-Info.plist , di API_KEY lapangan.

  • Firebase Android Apps - Cari key API auto-cocok aplikasi dalam Firebase file konfigurasi, google-services.json , di current_key lapangan.

  • Firebase Web Apps - Cari key API auto-cocok aplikasi dalam Firebase config objek, di apiKey lapangan.

Menggunakan kunci API

Kunci API digunakan untuk mengidentifikasi proyek Firebase Anda saat berinteraksi dengan layanan Firebase/Google. Secara khusus, mereka digunakan untuk mengaitkan permintaan API dengan proyek Anda untuk kuota dan penagihan. Mereka juga berguna untuk mengakses data publik.

Misalnya, Anda dapat secara eksplisit menggunakan kunci API dengan meneruskan nilainya ke panggilan REST API sebagai parameter kueri. Contoh ini menunjukkan bagaimana Anda dapat membuat permintaan ke Dinamis Link shortener link API :

POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY

Saat aplikasi Anda melakukan panggilan ke Firebase API, aplikasi Anda akan secara otomatis mencari di file/objek konfigurasi Firebase untuk kunci API proyek Anda. Namun, Anda dapat menyetel kunci API menggunakan mekanisme yang berbeda, termasuk variabel lingkungan.

Terapkan pembatasan kunci API (disarankan)

Meskipun tidak perlu memperlakukan kunci API untuk layanan Firebase sebagai rahasia, ada beberapa kasus tertentu (lihat di bawah) di mana Anda mungkin ingin mengambil tindakan tambahan untuk melindungi proyek Anda dari penyalahgunaan kunci API.

Kencangkan kuota jika Anda menggunakan Otentikasi berbasis kata sandi

Jika Anda menggunakan password-based Firebase Otentikasi dan orang yang memegang kunci API Anda, mereka tidak akan dapat mengakses database Firebase proyek Anda atau data Cloud Storage selama data ini dilindungi oleh Firebase Aturan Keamanan . Namun, mereka dapat menggunakan kunci API Anda untuk mengakses titik akhir autentikasi Firebase dan membuat permintaan autentikasi terhadap proyek Anda.

Untuk mengurangi terhadap kemungkinan bahwa seseorang mungkin menyalahgunakan kunci API untuk mencoba serangan brute force, Anda dapat mengencangkan kuota default dari identitytoolkit.googleapis.com endpoint untuk mencerminkan harapan lalu lintas normal aplikasi Anda. Ketahuilah bahwa jika Anda memperketat kuota ini dan aplikasi Anda tiba-tiba mendapatkan pengguna, Anda mungkin mendapatkan kesalahan saat masuk hingga Anda menambah kuota. Anda dapat mengubah kuota API proyek Anda dalam Cloud Console Google .

Gunakan kunci API terpisah yang dibatasi untuk jenis API tertentu

Meskipun kunci API yang digunakan untuk layanan Firebase umumnya tidak perlu diperlakukan sebagai rahasia, Anda harus mengambil beberapa tindakan pencegahan ekstra dengan kunci API yang digunakan untuk memberikan akses ke Google Cloud API yang telah Anda aktifkan secara manual.

Jika Anda menggunakan Google Cloud API (pada platform apa pun) yang tidak otomatis diaktifkan oleh Firebase (artinya Anda mengaktifkannya sendiri), Anda harus mempertimbangkan untuk membuat kunci API terpisah yang dibatasi untuk digunakan dengan API tersebut. Ini sangat penting jika API ditujukan untuk layanan Google Cloud yang dapat ditagih.

Misalnya, jika Anda menggunakan Firebase ML Cloud Visi API di iOS, Anda harus membuat kunci API terpisah yang Anda gunakan hanya untuk mengakses Visi Cloud API.

Dengan menggunakan, kunci API dibatasi terpisah untuk non-Firebase API, Anda dapat memutar atau mengganti kunci ketika diperlukan dan menambah batasan-batasan tambahan untuk tombol API tanpa mengganggu penggunaan layanan Firebase.

Gunakan tombol khusus lingkungan API (disarankan)

Jika Anda menyiapkan project Firebase yang berbeda untuk lingkungan yang berbeda, seperti staging dan produksi, setiap instance aplikasi harus berinteraksi dengan project Firebase yang sesuai. Misalnya, instance aplikasi staging Anda tidak boleh berbicara dengan project Firebase produksi Anda. Ini juga berarti bahwa aplikasi staging Anda perlu menggunakan kunci API yang terkait dengan project Firebase staging Anda.

Untuk mengurangi masalah dalam mempromosikan perubahan kode dari pengembangan ke staging hingga produksi, alih-alih menyertakan kunci API dalam kode itu sendiri, tetapkan sebagai variabel lingkungan atau sertakan dalam file konfigurasi.

Perhatikan bahwa jika Anda menggunakan Firebase Local Emulator Suite untuk pengembangan bersama dengan Firebase ML, Anda harus membuat dan menggunakan kunci API khusus debug. Petunjuk untuk membuat semacam kunci ditemukan di docs Firebase ML .

FAQ