Lihat yang baru dari Firebase di Google I/O 2022. Pelajari lebih lanjut

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 cara 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 (untuk mengontrol pengguna mana yang dapat mengakses sumber daya) dan App Check (untuk mengontrol aplikasi mana yang dapat mengakses sumber daya).

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 disertakan dalam kode, ada beberapa kasus khusus saat Anda harus menerapkan batasan 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 dibuat otomatis
  • Buat Aplikasi Apple Firebase > iOS key dibuat secara otomatis
  • Buat Aplikasi Android Firebase > Android key dibuat otomatis

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

Menemukan kunci API Anda

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

Anda juga dapat menemukan kunci API mana yang secara otomatis dicocokkan dengan Aplikasi Firebase di tempat berikut. Secara default, semua Aplikasi Firebase proyek Anda untuk platform yang sama (Apple vs Android vs Web) akan menggunakan kunci API yang sama.

  • Firebase Apple Apps — Temukan kunci API pencocokan otomatis aplikasi di file konfigurasi Firebase, GoogleService-Info.plist , di bidang API_KEY .

  • Aplikasi Android Firebase — Temukan kunci API pencocokan otomatis aplikasi di file konfigurasi Firebase, google-services.json , di bidang current_key .

  • Aplikasi Web Firebase — Temukan kunci API pencocokan otomatis aplikasi di objek konfigurasi Firebase, di bidang apiKey .

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 API penyingkat tautan Dynamic Links :

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 batasan pada 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 Firebase Authentication berbasis kata sandi dan seseorang mendapatkan kunci API Anda, mereka tidak akan dapat mengakses database proyek Firebase atau data Cloud Storage Anda selama data ini dilindungi oleh Aturan Keamanan Firebase . Namun, mereka dapat menggunakan kunci API Anda untuk mengakses titik akhir autentikasi Firebase dan membuat permintaan autentikasi terhadap proyek Anda.

Untuk mengurangi kemungkinan seseorang menyalahgunakan kunci API untuk mencoba serangan brute force, Anda dapat memperketat kuota default titik akhir identitytoolkit.googleapis.com untuk mencerminkan ekspektasi 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 di Google Cloud Console .

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 Cloud Vision API Firebase ML di iOS, Anda harus membuat kunci API terpisah yang hanya Anda gunakan untuk mengakses Cloud Vision API.

Dengan menggunakan kunci API terpisah yang dibatasi untuk API non-Firebase, Anda dapat merotasi atau mengganti kunci bila perlu dan menambahkan batasan tambahan ke kunci API tanpa mengganggu penggunaan layanan Firebase.

Gunakan kunci API khusus lingkungan (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 kunci semacam itu dapat ditemukan di dokumen Firebase ML .

FAQ