Memahami project Firebase

Halaman ini menyajikan gambaran umum singkat beberapa konsep penting terkait project Firebase. Jika tersedia, klik link untuk menemukan informasi lebih lengkap tentang fitur, layanan, dan bahkan platform lainnya. Di bagian bawah halaman ini, temukan daftar praktik terbaik umum untuk project Firebase.

Hubungan antara project, aplikasi, dan produk Firebase

Project Firebase adalah entity level teratas untuk Firebase. Di project, Anda membuat aplikasi Firebase dengan mendaftarkan aplikasi iOS, Android, atau web. Setelah mendaftarkan aplikasi dengan Firebase, Anda dapat menambahkan SDK Firebase untuk sejumlah produk Firebase, seperti Analytics, Cloud Firestore, Performance Monitoring, atau Remote Config.

Pelajari lebih lanjut informasi mendetail tentang proses ini di Panduan Memulai (iOS | Android | web | Unity | C++).

Hubungan antara project Firebase dan Google Cloud Platform (GCP)

Saat membuat project Firebase baru di Firebase console, Anda sebenarnya membuat project Google Cloud Platform (GCP) di balik layar. Anggap project GCP sebagai container virtual untuk data, kode, konfigurasi, dan layanan. Project Firebase adalah project GCP yang memiliki konfigurasi dan layanan khusus Firebase tambahan. Anda bahkan dapat membuat project GCP terlebih dahulu, lalu menambahkan Firebase ke project tersebut nanti.

Karena project Firebase adalah project GCP:

  • Project yang muncul di Firebase console juga akan muncul di GCP console dan konsol API Google.

  • Tagihan dan izin untuk project digunakan bersama di seluruh Firebase dan GCP.

  • ID unik untuk project (seperti nomor project dan project ID) digunakan bersama di seluruh Firebase dan GCP.

  • Dalam suatu project, Anda dapat menggunakan produk dan API, baik dari Firebase maupun GCP.

  • Menghapus sebuah project akan menghapusnya di Firebase dan GCP.

Menyiapkan project Firebase dan mendaftarkan aplikasi

Anda dapat menyiapkan project Firebase dan mendaftarkan aplikasi di Firebase console (atau, untuk kasus penggunaan lanjutan, melalui Firebase Management REST API atau Firebase CLI). Saat menyiapkan project dan mendaftarkan aplikasi, Anda harus membuat beberapa keputusan organisasi dan menambahkan informasi konfigurasi khusus Firebase ke project lokal.

Pastikan untuk meninjau beberapa praktik terbaik level project umum (di bagian bawah halaman ini) sebelum menyiapkan project dan mendaftarkan aplikasi.

Nama project

Saat membuat project, berikan nama untuk project Anda. ID ini adalah nama khusus internal untuk project di Firebase console, GCP console, dan Firebase CLI. Nama project tidak ditampilkan di produk, layanan, atau resource Firebase atau GCP yang dapat dilihat secara publik. Nama project hanya berfungsi untuk memudahkan Anda membedakan berbagai project.

Anda dapat mengedit nama project kapan saja di Setelan project Firebase console. Nama project ditampilkan di panel atas.

Nomor project

Project Firebase (dan project GCP terkait) memiliki nomor project. Nomor project adalah ID kanonis unik yang ditetapkan Google secara global untuk project. Gunakan ID ini saat mengonfigurasi integrasi dan/atau melakukan panggilan API ke Firebase, Google, atau layanan pihak ketiga.

Panggilan API dan nomor project

Untuk banyak panggilan API, Anda perlu menyertakan ID unik untuk project. Meskipun banyak API menerima project ID, sebaiknya gunakan nomor project untuk melakukan panggilan API ke Firebase, Google, atau layanan pihak ketiga.

Pelajari lebih lanjut cara menggunakan ID project, terutama nomor project, di standar AIP 2510 Google.

Menemukan nomor project

  • Firebase console: Klik Setelan project. Nomor project ditampilkan di panel atas.

  • Firebase CLI: Jalankan firebase projects:list. Nomor project ditampilkan bersama dengan semua project Firebase yang terkait dengan akun Anda.

  • Firebase Management REST API: Panggil projects.list. Isi respons memuat nomor project di objek FirebaseProject.

Project ID

Project Firebase (dan project GCP terkait) memiliki project ID. Project ID adalah ID unik yang ditentukan pengguna untuk project di seluruh Firebase dan GCP. Saat Anda membuat project Firebase, Firebase secara otomatis menetapkan ID unik ke project, tetapi Anda dapat mengeditnya selama penyiapan project. ID ini secara umum harus diperlakukan sebagai alias praktis untuk merujuk project.

Jika Anda menghapus suatu project, project ID tersebut juga akan terhapus dan tidak akan dapat digunakan lagi oleh project lain.

Resource Firebase dan project ID

Project ID ditampilkan pada resource Firebase yang terlihat secara publik, misalnya:

  • Subdomain Hosting Default - PROJECT_ID.web.app dan PROJECT_ID.firebaseapp.com
  • URL Realtime Database default - PROJECT_ID.firebaseio.com
  • Nama bucket Cloud Storage default — PROJECT_ID.appspot.com

Untuk semua resource yang disebutkan di atas, Anda dapat membuat instance non-default. Nama non-default yang terlihat secara publik dapat disesuaikan sepenuhnya. Anda dapat menghubungkan domain kustom ke situs yang dihosting di Firebase, melakukan sharding pada Realtime Database, dan membuat beberapa bucket Cloud Storage (buka halaman Memulai khusus platform).

Firebase CLI dan project ID

Untuk beberapa kasus penggunaan, Anda mungkin memiliki beberapa project Firebase yang terkait dengan direktori aplikasi lokal yang sama. Dalam situasi ini, saat menggunakan Firebase CLI, Anda perlu meneruskan tanda --project dengan perintah firebase untuk memberi tahu project Firebase mana Anda ingin berinteraksi.

Anda juga dapat menyiapkan alias project untuk setiap project Firebase sehingga tidak perlu mengingat project ID.

Panggilan API dan project ID

Untuk banyak panggilan API, Anda perlu menyertakan ID unik untuk project. Meskipun banyak API menerima project ID, sebaiknya gunakan nomor project untuk melakukan panggilan API ke Firebase, Google, atau layanan pihak ketiga.

Pelajari lebih lanjut cara menggunakan ID project, terutama nomor project, di standar AIP 2510 Google.

Menemukan project ID

  • Firebase console: Klik Setelan project. Project ID ditampilkan di panel atas.

  • Firebase CLI: Jalankan firebase projects:list. Project ID ditampilkan beserta semua project Firebase yang terkait dengan akun Anda.

  • Firebase Management REST API: Panggil projects.list. Isi respons memuat project ID dalam objek FirebaseProject.

Objek dan file konfigurasi Firebase

Saat Anda mendaftarkan aplikasi ke project Firebase, Firebase console akan menyediakan file konfigurasi Firebase (aplikasi iOS/Android) atau objek konfigurasi (aplikasi web) yang Anda tambahkan langsung ke direktori aplikasi lokal.

  • Untuk aplikasi iOS, tambahkan file konfigurasi GoogleService-Info.plist.
  • Untuk aplikasi Android, tambahkan file konfigurasi google-services.json.
  • Untuk aplikasi web, tambahkan objek konfigurasi Firebase.

Anda bisa mendapatkan objek atau file konfigurasi Firebase aplikasi kapan saja.

Objek atau file konfigurasi Firebase mengaitkan aplikasi dengan project Firebase tertentu beserta resource-nya (database, bucket penyimpanan, dll.). Konfigurasi ini mencakup "opsi Firebase", yang merupakan parameter yang diperlukan oleh layanan Google dan Firebase untuk berkomunikasi dengan API server Firebase serta mengaitkan data klien dengan project Firebase dan aplikasi Firebase. Berikut adalah "opsi Firebase" minimum yang diperlukan:

  • Kunci API: string terenkripsi sederhana yang digunakan saat memanggil API tertentu yang tidak perlu mengakses data pengguna pribadi (contoh nilai: AIzaSyDOCAbC123dEf456GhI789jKl012-MnO)

  • Project ID: ID unik yang ditentukan pengguna untuk project di seluruh Firebase dan GCP. ID ini dapat muncul di URL atau nama beberapa resource Firebase, tetapi secara umum harus diperlakukan sebagai alias untuk merujuk project. (contoh nilai: myapp-project-123)

  • ID Aplikasi ("AppID"): ID unik untuk aplikasi Firebase di seluruh Firebase dengan format khusus platform:

    • Aplikasi iOS Firebase: GOOGLE_APP_ID (contoh nilai: 1:1234567890:ios:321abc456def7890)
      Ini bukan ID Paket Apple.
    • Aplikasi Android Firebase: mobilesdk_app_id (nilai contoh: 1:1234567890:android:321abc456def7890)
      Ini bukan ID aplikasi Android atau nama paket Android.
    • Aplikasi Web Firebase: appId (contoh nilai: 1:65211879909:web:3ae38ef1cdcb2e01fe5f0c)

Konten file atau objek konfigurasi Firebase dianggap publik, termasuk ID khusus platform aplikasi (ID paket iOS atau nama paket Android) dan nilai khusus project Firebase, seperti Kunci API, project ID, URL Realtime Database, dan nama bucket Storage. Oleh karena itu, gunakan Aturan Keamanan Firebase untuk melindungi data dan file Anda di Realtime Database, Cloud Firestore, dan Cloud Storage.

Untuk project open source, secara umum kami tidak merekomendasikan penyertaan objek atau file konfigurasi Firebase aplikasi dalam kontrol sumber karena, dalam sebagian besar kasus, pengguna harus membuat project Firebase-nya sendiri dan mengarahkan aplikasinya ke resource Firebase mereka sendiri (melalui objek atau file konfigurasi Firebase).

Mengelola project Firebase

Pastikan untuk meninjau praktik terbaik umum level project (di bagian bawah halaman ini) untuk pertimbangan yang dapat memengaruhi pengelolaan project Firebase.

Alat untuk mengelola project

Firebase console

Firebase console menawarkan lingkungan terlengkap untuk mengelola produk, aplikasi, dan setelan level project Firebase.

Firebase console - layar ringkasan project

Panel kiri konsol mencantumkan produk Firebase, yang dikelola berdasarkan kategori level teratas. Di bagian atas panel kiri, Anda dapat mengakses setelan project dengan mengklik . Setelan project mencakup integrasi, izin akses, dan penagihan.

Bagian tengah konsol menampilkan tombol yang meluncurkan alur kerja penyiapan untuk mendaftarkan berbagai jenis aplikasi. Setelah Anda mulai menggunakan Firebase, area utama konsol akan berubah menjadi dasbor yang menampilkan statistik produk yang Anda gunakan.

Firebase CLI (fitur command-line)

Firebase juga menawarkan Firebase CLI untuk mengonfigurasi dan mengelola produk Firebase tertentu, seperti Firebase Hosting dan Cloud Functions for Firebase.

Setelah menginstal CLI, Anda memiliki akses ke perintah firebase global. Gunakan CLI untuk menautkan direktori aplikasi lokal ke project Firebase, lalu deploy versi baru konten yang dihosting di Firebase atau mengupdate fungsi.

Firebase Management REST API

Dengan Firebase Management REST API, Anda dapat mengelola project Firebase secara terprogram. Misalnya, Anda dapat mendaftarkan aplikasi secara terprogram ke project atau mencantumkan aplikasi yang sudah terdaftar (iOS | Android | web).

Praktik terbaik umum

Menambahkan aplikasi ke project

Pastikan bahwa, dari perspektif pengguna akhir, semua aplikasi dalam sebuah project merupakan varian platform dari aplikasi yang sama. Sebaiknya daftarkan versi iOS, Android, dan web dari aplikasi atau game yang sama ke project Firebase yang sama. Semua aplikasi dalam sebuah project umumnya berbagi resource Firebase yang sama (database, bucket penyimpanan, dll.).

Jika memiliki beberapa varian build dengan ID paket iOS atau nama paket Android yang berbeda, Anda dapat mendaftarkan setiap varian ke project Firebase terpisah. Namun, jika Anda memiliki varian yang berbagi resource Firebase yang sama, daftarkan varian tersebut ke project Firebase yang sama.

Meskipun jumlah aplikasi dalam sebuah project tidak dibatasi, pendaftaran aplikasi dapat membuat satu atau beberapa client ID OAuth 2.0 yang mendasarinya. Sebuah project dapat menampung pembuatan sekitar 30 client ID.

Multi-tenancy

Hindari menghubungkan beberapa aplikasi dan/atau situs independen yang berbeda secara logika ke satu project (sering disebut "multi-tenancy"). Multi-tenancy dapat menyebabkan masalah konfigurasi dan privasi data yang serius, termasuk masalah yang tidak diinginkan terkait agregasi analisis, autentikasi bersama, struktur database yang terlalu rumit, dan kesulitan dengan aturan keamanan.

Secara umum, jika serangkaian aplikasi tidak berbagi data dan konfigurasi yang sama, benar-benar pertimbangkan untuk mendaftarkan setiap aplikasi ke project Firebase yang berbeda.

Misalnya, jika Anda membuat aplikasi white label, setiap aplikasi yang diberi label secara terpisah harus memiliki project Firebase-nya sendiri. Setiap aplikasi tidak dapat, dan tidak boleh (karena alasan privasi), membagikan data kepada aplikasi yang lain.

Perhatikan beberapa batasan umum untuk project, aplikasi, dan situs Firebase:

  • Jumlah project per akun

    • Paket Spark gratis — Kuota pembuatan project dibatasi untuk project dalam jumlah yang lebih rendah (biasanya sekitar 5-10).
    • Paket berbayar — Kuota pembuatan project per akun penagihan meningkat banyak selama akun penagihan Cloud terkait memiliki reputasi yang baik.

    Batas kuota pembuatan project jarang menjadi perhatian bagi sebagian besar developer, tetapi jika diperlukan, Anda dapat meminta penambahan kuota project.

    Perlu diperhatikan bahwa penghapusan menyeluruh untuk suatu project memerlukan waktu selama 30 hari, dan dihitung terhadap kuota project hingga project sepenuhnya dihapus.

  • Jumlah aplikasi per project

    Meskipun jumlah aplikasi dalam sebuah project tidak dibatasi, pendaftaran aplikasi dapat membuat satu atau beberapa client ID OAuth 2.0 yang mendasarinya. Sebuah project dapat menampung pembuatan sekitar 30 client ID.

  • Jumlah situs hosting per project

    Fitur multisite Firebase Hosting mendukung maksimum 36 situs per project.

Meluncurkan aplikasi Anda