Referensi Firebase CLI

Firebase CLI (GitHub) menyediakan beragam alat untuk mengelola, melihat, dan men-deploy ke project Firebase.

Sebelum menggunakan Firebase CLI, siapkan project Firebase.

Menyiapkan atau mengupdate CLI

Instal Firebase CLI

Anda dapat menginstal Firebase CLI menggunakan metode yang cocok dengan sistem operasi, tingkat pengalaman, dan/atau kasus penggunaan Anda. Terlepas dari cara Anda menginstal CLI, Anda memiliki akses ke perintah firebase dan fungsionalitas yang sama.

Windows macOS Linux

Windows

Anda dapat menginstal Firebase CLI untuk Windows menggunakan salah satu opsi berikut:

Opsi Deskripsi Disarankan untuk...
biner mandiri Download biner mandiri untuk CLI. Selanjutnya, Anda dapat mengakses file yang dapat dieksekusi untuk membuka shell guna menjalankan perintah firebase. Developer baru

Developer yang tidak menggunakan atau belum familier dengan Node.js
npm Gunakan npm (Pengelola Paket Node) untuk menginstal CLI dan mengaktifkan perintah firebase yang tersedia secara global. Developer yang menggunakan Node.js

biner mandiri

Agar dapat mendownload dan menjalankan biner untuk Firebase CLI, ikuti langkah-langkah berikut:

  1. Download biner Firebase CLI untuk Windows.

  2. Akses biner untuk membuka shell tempat Anda dapat menjalankan perintah firebase.

  3. Lanjutkan untuk login dan menguji CLI.

npm

Agar dapat menggunakan npm (Pengelola Paket Node) untuk menginstal Firebase CLI, ikuti langkah-langkah berikut:

  1. Instal Node.js menggunakan nvm-windows (Pengelola Versi Node). Penginstalan Node.js akan otomatis menginstal alat perintah npm.

  2. Instal Firebase CLI melalui npm dengan menjalankan perintah berikut:

    npm install -g firebase-tools

    Perintah ini mengaktifkan perintah firebase yang tersedia secara global.

  3. Lanjutkan untuk login dan menguji CLI.

macOS atau Linux

Anda dapat menginstal Firebase CLI untuk macOS atau Linux menggunakan salah satu opsi berikut:

Opsi Deskripsi Disarankan untuk...
skrip penginstalan otomatis Jalankan satu perintah yang otomatis mendeteksi sistem operasi Anda, mendownload rilis CLI terbaru, lalu mengaktifkan perintah firebase yang tersedia secara global. Developer baru

Developer yang tidak menggunakan atau belum familier dengan Node.js

Deployment otomatis di lingkungan CI/CD
biner mandiri Download biner mandiri untuk CLI. Selanjutnya, Anda dapat mengonfigurasi dan menjalankan biner sesuai dengan alur kerja Anda. Alur kerja yang dapat disesuaikan sepenuhnya menggunakan CLI
npm Gunakan npm (Pengelola Paket Node) untuk menginstal CLI dan mengaktifkan perintah firebase yang tersedia secara global. Developer yang menggunakan Node.js

skrip penginstalan otomatis

Untuk menginstal Firebase CLI menggunakan skrip penginstalan otomatis, ikuti langkah-langkah berikut:

  1. Jalankan perintah cURL berikut:

    curl -sL https://firebase.tools | bash

    Skrip ini otomatis mendeteksi sistem operasi Anda, mendownload rilis Firebase CLI terbaru, lalu mengaktifkan perintah firebase yang tersedia secara global.

  2. Lanjutkan untuk login dan menguji CLI.

Untuk mengetahui contoh dan detail lebih lanjut tentang skrip penginstalan otomatis, pelajari kode sumber skrip di firebase.tools.

biner mandiri

Agar dapat mendownload dan menjalankan biner untuk Firebase CLI yang dibuat khusus untuk OS Anda, ikuti langkah-langkah berikut:

  1. Download biner Firebase CLI untuk OS Anda: macOS | Linux

  2. (Opsional) Siapkan perintah firebase yang tersedia secara global.

    1. Jadikan biner sebagai file yang dapat dieksekusi dengan menjalankan chmod +x ./firebase_tools.
    2. Tambahkan jalur biner ke JALUR Anda.
  3. Lanjutkan untuk login dan menguji CLI.

npm

Agar dapat menggunakan npm (Pengelola Paket Node) untuk menginstal Firebase CLI, ikuti langkah-langkah berikut:

  1. Instal Node.js menggunakan nvm (Pengelola Versi Node).
    Jika Node.js diinstal, alat perintah npm juga akan otomatis terinstal.

  2. Instal Firebase CLI melalui npm dengan menjalankan perintah berikut:

    npm install -g firebase-tools

    Perintah ini mengaktifkan perintah firebase yang tersedia secara global.

  3. Lanjutkan untuk login dan menguji CLI.

Login dan menguji Firebase CLI

Setelah menginstal CLI, Anda harus menjalankan autentikasi. Selanjutnya, Anda dapat mengonfirmasi autentikasi dengan mencantumkan project Firebase Anda.

  1. Login ke Firebase menggunakan akun Google Anda dengan menjalankan perintah berikut:

    firebase login

    Perintah ini menghubungkan komputer lokal Anda ke Firebase dan memberikan akses ke project Firebase Anda.

  2. Uji untuk memastikan bahwa CLI sudah diinstal dan mengakses akun Anda dengan benar dengan menampilkan daftar project Firebase Anda. Jalankan perintah berikut:

    firebase projects:list

    Daftar yang ditampilkan harus sama dengan project Firebase yang tercantum di Firebase console.

Mengupdate ke versi CLI terbaru

Secara umum, Anda sebaiknya menggunakan versi Firebase CLI terbaru.

Cara Anda mengupdate versi CLI bergantung pada sistem operasi dan cara Anda menginstal CLI.

Windows

  • biner mandiri: Download versi baru, lalu ganti di sistem Anda
  • npm: Jalankan npm install -g firebase-tools

macOS

  • skrip penginstalan otomatis: Jalankan curl -sL https://firebase.tools | upgrade=true bash
  • biner mandiri: Download versi baru, lalu ganti di sistem Anda
  • npm: Jalankan npm install -g firebase-tools

Linux

  • skrip penginstalan otomatis: Jalankan curl -sL https://firebase.tools | upgrade=true bash
  • biner mandiri: Download versi baru, lalu ganti di sistem Anda
  • npm: Jalankan npm install -g firebase-tools

Menggunakan CLI dengan sistem CI

Firebase CLI membutuhkan browser untuk menyelesaikan autentikasi, tetapi CLI sepenuhnya kompatibel dengan CI dan lingkungan headless lainnya.

  1. Di komputer yang dilengkapi browser, instal Firebase CLI.

  2. Mulai proses login dengan menjalankan perintah berikut:

    firebase login:ci
  3. Buka URL yang disediakan, lalu login menggunakan akun Google.

  4. Cetak token refresh baru. Sesi CLI saat ini tidak akan terpengaruh.

  5. Simpan token output dengan cara yang aman tetapi mudah diakses di sistem CI Anda.

  6. Gunakan token ini saat menjalankan perintah firebase. Anda dapat menggunakan salah satu dari dua opsi berikut:

    • Opsi 1: Menyimpan token sebagai variabel lingkungan FIREBASE_TOKEN. Sistem Anda akan otomatis menggunakan token ini.

    • Opsi 2: Menjalankan semua perintah firebase dengan flag --token TOKEN di sistem CI Anda.
      Ini adalah urutan prioritas untuk pemuatan token: flag, variabel lingkungan, project Firebase yang diinginkan.

Menginisialisasi project Firebase

Banyak tugas umum yang dijalankan menggunakan CLI, seperti men-deploy ke project Firebase, memerlukan direktori project. Anda perlu membuat direktori project menggunakan perintah firebase init. Direktori project biasanya merupakan direktori yang sama dengan root kontrol sumber Anda, dan setelah menjalankan firebase init, direktori tersebut akan berisi file konfigurasi firebase.json.

Untuk menginisialisasi project Firebase baru, jalankan perintah berikut dari dalam direktori aplikasi Anda:

firebase init

Perintah firebase init akan memandu Anda menyiapkan direktori project dan beberapa produk Firebase. Selama inisialisasi project, Firebase CLI akan meminta Anda menyelesaikan tugas-tugas berikut:

  • Pilih produk Firebase yang diinginkan, yang akan disiapkan di project Firebase Anda.

    Langkah ini akan meminta Anda untuk menetapkan konfigurasi file tertentu bagi produk yang dipilih. Untuk mengetahui informasi lebih lanjut seputar konfigurasi ini, baca dokumentasi produk tertentu yang terkait (misalnya, Hosting). Perlu diperhatikan bahwa Anda dapat menjalankan firebase init nanti untuk menyiapkan produk Firebase lainnya.

  • Pilih project Firebase default.

    Langkah ini menghubungkan direktori project saat ini dengan project Firebase, sehingga perintah khusus project (seperti firebase deploy) dijalankan terhadap project Firebase yang sesuai.

    Anda juga dapat menghubungkan beberapa project Firebase (misalnya project staging dan produksi) dengan direktori project yang sama.

Di akhir inisialisasi, Firebase akan otomatis membuat dua file berikut di root direktori aplikasi lokal Anda:

  • File konfigurasi firebase.json yang mencantumkan konfigurasi project Anda.

  • File .firebaserc yang menyimpan alias project Anda.

File firebase.json

Perintah firebase init akan membuat file konfigurasi firebase.json di root direktori project Anda.

File firebase.json diperlukan untuk men-deploy aset dengan Firebase CLI karena file tersebut menentukan file dan setelan mana dari direktori project Anda yang di-deploy ke project Firebase Anda. Karena beberapa setelan dapat ditentukan di direktori project Anda atau Firebase console, pastikan Anda menyelesaikan setiap potensi konflik deployment.

Anda dapat mengonfigurasi sebagian besar opsi Firebase Hosting secara langsung di file firebase.json. Namun, untuk layanan Firebase lain yang dapat di-deploy dengan Firebase CLI, perintah firebase init akan menghasilkan file tertentu yang dapat Anda gunakan untuk menentukan setelan bagi layanan tersebut, misalnya file index.js untuk Cloud Functions. Anda juga dapat menyiapkan hook pra-deployment atau pasca-deployment di file firebase.json.

Berikut adalah contoh file firebase.json dengan setelan default jika Anda memilih Firebase Hosting, Cloud Firestore, dan Cloud Functions for Firebase (dengan opsi lint dan sumber TypeScript dipilih) selama inisialisasi.

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  },
  "firestore": {
      "rules": "firestore.rules",
      "indexes": "firestore.indexes.json"
  },
  "functions": {
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    ]
  }
}

Meskipun firebase.json digunakan secara default, Anda dapat meneruskan flag --config PATH untuk menentukan file konfigurasi alternatif.

Konfigurasi untuk beberapa database Cloud Firestore

Saat Anda menjalankan firebase init, file firebase.json akan berisi satu kunci firestore yang sesuai dengan database default project Anda, seperti yang ditunjukkan di atas.

Jika project Anda berisi beberapa database Cloud Firestore, edit file firebase.json untuk mengaitkan berbagai Cloud Firestore Security Rules dan file sumber indeks database dengan setiap database. Ubah file dengan array JSON, dengan satu entri untuk setiap database.

      "firestore": [
        {
          "database": "(default)",
          "rules": "firestore.default.rules",
          "indexes": "firestore.default.indexes.json"
        },
        {
          "database": "ecommerce",
          "rules": "firestore.ecommerce.rules",
          "indexes": "firestore.ecommerce.indexes.json"
        }
      ],

File Cloud Functions yang akan diabaikan saat di-deploy

Pada waktu deployment fungsi, CLI akan otomatis menentukan daftar file dalam direktori functions yang akan diabaikan. Hal ini mencegah deployment ke file yang tidak relevan di backend yang dapat meningkatkan ukuran data deployment.

Daftar file yang diabaikan secara default, yang ditampilkan dalam format JSON, adalah:

"ignore": [
  ".git",
  ".runtimeconfig.json",
  "firebase-debug.log",
  "firebase-debug.*.log",
  "node_modules"
]

Jika Anda menambahkan nilai kustom sendiri untuk ignore di firebase.json, pastikan Anda mempertahankan (atau menambahkan, jika hilang) daftar file yang ditampilkan di atas.

Mengelola alias project

Anda dapat menghubungkan beberapa project Firebase dengan direktori project yang sama. Misalnya, Anda mungkin ingin menggunakan satu project Firebase untuk staging dan satu lagi untuk produksi. Dengan menggunakan lingkungan project yang berbeda, Anda dapat memverifikasi perubahan sebelum di-deploy ke produksi. Dengan perintah firebase use, Anda dapat beralih antar-alias dan membuat alias baru.

Menambahkan alias project

Project Firebase yang Anda pilih selama inisialisasi project akan otomatis mendapatkan alias default. Namun, agar perintah khusus project dijalankan terhadap project Firebase lain sekaligus tetap menggunakan direktori project yang sama, jalankan perintah berikut dari dalam direktori project Anda:

firebase use --add

Perintah ini akan meminta Anda untuk memilih project Firebase lain dan menetapkannya sebagai alias. Penetapan alias ditulis ke file .firebaserc di dalam direktori project Anda.

Menggunakan alias project

Untuk menggunakan alias project Firebase yang ditetapkan, jalankan salah satu perintah berikut dari dalam direktori project Anda.

Perintah Deskripsi
firebase use Melihat daftar alias yang saat ini ditetapkan untuk direktori project Anda
firebase use \
PROJECT_ID|ALIAS
Mengarahkan semua perintah agar dijalankan terhadap project Firebase yang ditentukan.
CLI menggunakan project ini sebagai "project aktif" saat ini.
firebase use --clear Menghapus project aktif.

Jalankan firebase use PROJECT_ID|ALIAS untuk menetapkan project aktif baru sebelum menjalankan perintah CLI lainnya.

firebase use \
--unalias PROJECT_ALIAS
Menghapus alias dari direktori project Anda.

Anda dapat mengganti project yang digunakan sebagai project aktif saat ini dengan meneruskan flag --project dengan perintah CLI apa pun. Misalnya: Anda dapat menyetel CLI agar dijalankan terhadap project Firebase yang telah Anda beri alias staging. Jika ingin menjalankan perintah tunggal terhadap project Firebase yang telah Anda beri alias prod, Anda dapat menjalankan, misalnya, firebase deploy --project=prod.

Kontrol sumber dan alias project

Secara umum, Anda harus melakukan check in file .firebaserc ke dalam kontrol sumber agar tim Anda dapat berbagi alias project. Namun, untuk project open source atau template starter, biasanya Anda tidak perlu melakukan check in file .firebaserc.

Jika Anda memiliki project pengembangan khusus untuk penggunaan sendiri, Anda dapat meneruskan flag --project dengan setiap perintah atau menjalankan firebase use PROJECT_ID tanpa menetapkan alias untuk project Firebase.

Menyalurkan dan menguji project Firebase Anda secara lokal

Anda dapat melihat dan menguji project Firebase pada URL yang dihosting secara lokal sebelum di-deploy ke produksi. Jika Anda hanya ingin menguji fitur tertentu, gunakan daftar yang dipisahkan koma dalam sebuah flag pada perintah firebase serve.

Jalankan perintah berikut dari root direktori project lokal jika Anda ingin melakukan salah satu dari tugas berikut:

  • Melihat konten statis untuk aplikasi yang dihosting Firebase.
  • Gunakan Cloud Functions untuk membuat konten dinamis Firebase Hosting dan sebaiknya gunakan fungsi HTTP produksi (yang di-deploy) untuk mengemulasikan Hosting di URL lokal.
firebase serve --only hosting

Mengemulasikan project Anda menggunakan fungsi HTTP lokal

Jalankan salah satu perintah berikut dari direktori project Anda untuk mengemulasikan project menggunakan fungsi HTTP lokal.

  • Untuk mengemulasikan fungsi HTTP dan hosting untuk pengujian pada URL lokal, gunakan salah satu perintah berikut:

    firebase serve
    firebase serve --only functions,hosting // uses a flag
  • Untuk mengemulasikan fungsi HTTP saja, gunakan perintah berikut:

    firebase serve --only functions

Menguji dari perangkat lokal lainnya

Secara default, firebase serve hanya merespons permintaan dari localhost. Artinya, Anda akan dapat mengakses konten yang dihosting dari browser web komputer Anda, tetapi tidak dari perangkat lain di jaringan Anda. Jika Anda ingin melakukan pengujian dari perangkat lokal lainnya, gunakan flag --host, seperti ini:

firebase serve --host 0.0.0.0  // accepts requests to any host

Men-deploy ke project Firebase

Firebase CLI mengelola deployment kode dan aset ke project Firebase Anda, termasuk:

  • Rilis baru dari situs Firebase Hosting Anda
  • Cloud Functions for Firebase baru, yang diperbarui, atau yang sudah ada
  • Skema dan konektor baru atau yang diperbarui untuk Firebase Data Connect
  • Aturan untuk Firebase Realtime Database
  • Aturan untuk Cloud Storage for Firebase
  • Aturan untuk Cloud Firestore
  • Indeks untuk Cloud Firestore

Untuk men-deploy ke project Firebase, jalankan perintah berikut dari direktori project Anda:

firebase deploy

Jika ingin, Anda dapat menambahkan komentar ke setiap deployment. Komentar ini akan ditampilkan dengan informasi penerapan lainnya di halaman Firebase Hosting project Anda. Contoh:

firebase deploy -m "Deploying the best new feature ever."

Saat menggunakan perintah firebase deploy, Anda harus memperhatikan hal-hal berikut:

  • Untuk men-deploy resource dari direktori project, direktori project tersebut harus memiliki file firebase.json. File ini dibuat otomatis untuk Anda dengan perintah firebase init.

  • Secara default, firebase deploy akan membuat rilis untuk semua resource yang dapat di-deploy dalam direktori project Anda. Untuk men-deploy layanan atau fitur Firebase tertentu, gunakan deployment parsial.

Konflik deployment untuk aturan keamanan

Untuk Firebase Realtime Database, Cloud Storage for Firebase, dan Cloud Firestore, Anda dapat menentukan aturan keamanan di direktori project lokal atau di Firebase console.

Opsi lain untuk menghindari konflik deployment adalah menggunakan deployment parsial dan hanya menentukan aturan di Firebase console.

Kuota deployment

Anda mungkin saja (meskipun kemungkinannya kecil) melebihi kuota yang membatasi tingkat atau volume operasi deployment Firebase. Misalnya, saat men-deploy fungsi dalam jumlah besar, Anda mungkin menerima pesan error HTTP 429 Quota. Untuk mengatasi masalah tersebut, coba gunakan deployment parsial.

Me-roll back deployment

Anda dapat me-roll back deployment Firebase Hosting dari halaman Firebase Hosting project Anda dengan memilih tindakan Rollback untuk rilis yang diinginkan.

Saat ini, roll back rilis aturan keamanan untuk Firebase Realtime Database, Cloud Storage for Firebase, atau Cloud Firestore belum bisa dilakukan.

Men-deploy layanan Firebase tertentu

Jika Anda hanya ingin men-deploy fitur atau layanan Firebase tertentu, gunakan daftar yang dipisahkan koma dalam sebuah flag pada perintah firebase deploy. Misalnya, perintah berikut men-deploy konten Firebase Hosting dan aturan keamanan Cloud Storage.

firebase deploy --only hosting,storage

Tabel berikut berisi daftar layanan dan fitur yang tersedia untuk deployment parsial. Nama-nama dalam flag sesuai dengan kunci dalam file konfigurasi firebase.json Anda.

Sintaks flag Layanan atau fitur yang di-deploy
--only hosting Konten dalam bahasa Firebase Hosting
--only database Firebase Realtime Database aturan
--only dataconnect Skema dan konektor Firebase Data Connect
--only storage Cloud Storage for Firebase aturan
--only firestore Aturan dan indeks Cloud Firestore untuk semua database yang dikonfigurasi
--only functions Cloud Functions for Firebase (mungkin ada versi yang lebih spesifik dari flag ini)

Men-deploy fungsi tertentu

Saat men-deploy fungsi, Anda dapat menarget fungsi tertentu. Contoh:

firebase deploy --only functions:function1
firebase deploy --only functions:function1,functions:function2

Opsi lainnya adalah mengelompokkan fungsi ke dalam grup ekspor di file /functions/index.js Anda. Dengan mengelompokkan fungsi, Anda dapat men-deploy beberapa fungsi menggunakan satu perintah.

Misalnya, Anda dapat menulis fungsi berikut untuk menentukan groupA dan groupB:

var functions = require('firebase-functions/v1');

exports.groupA = {
  function1: functions.https.onRequest(...),
  function2: functions.database.ref('\path').onWrite(...)
}
exports.groupB = require('./groupB');

Dalam contoh ini, file functions/groupB.js terpisah berisi fungsi tambahan yang secara khusus menentukan fungsi di groupB. Contoh:

var functions = require('firebase-functions/v1');

exports.function3 = functions.storage.object().onChange(...);
exports.function4 = functions.analytics.event('in_app_purchase').onLog(...);

Dalam contoh ini, Anda dapat men-deploy semua fungsi groupA dengan menjalankan perintah berikut dari direktori project:

firebase deploy --only functions:groupA

Atau, Anda dapat menargetkan fungsi tertentu dalam grup dengan menjalankan perintah berikut:

firebase deploy --only functions:groupA.function1,groupB.function4

Menghapus fungsi

Firebase CLI mendukung perintah dan opsi berikut untuk menghapus fungsi yang sebelumnya di-deploy:

  • Menghapus semua fungsi yang cocok dengan nama yang ditentukan di semua region:

    firebase functions:delete FUNCTION-1_NAME

  • Menghapus fungsi yang ditentukan, yang berjalan di region non-default:

    firebase functions:delete FUNCTION-1_NAME --region REGION_NAME

  • Menghapus lebih dari satu fungsi:

    firebase functions:delete FUNCTION-1_NAME FUNCTION-2_NAME

  • Menghapus grup fungsi tertentu:

    firebase functions:delete GROUP_NAME

  • Mengabaikan permintaan konfirmasi:

    firebase functions:delete FUNCTION-1_NAME --force

Menyiapkan tugas dengan skrip untuk pra-deployment dan pasca-deployment

Anda dapat menghubungkan skrip shell ke perintah firebase deploy untuk melakukan tugas pra-deployment atau pasca-deployment. Misalnya, skrip pra-deployment dapat melakukan transpilasi kode TypeScript ke JavaScript, dan hook pasca-deployment dapat memberi tahu administrator tentang deployment konten situs baru ke Firebase Hosting.

Untuk menyiapkan hook pra-deployment atau pasca-deployment, tambahkan skrip bash ke file konfigurasi firebase.json. Anda dapat menentukan skrip singkat secara langsung di file firebase.json, atau merujuk ke file lain yang ada di direktori project Anda.

Misalnya, skrip berikut adalah ekspresi firebase.json untuk tugas pasca-deployment yang mengirim pesan Slack setelah deployment ke Firebase Hosting berhasil.

"hosting": {
  // ...

  "postdeploy": "./messageSlack.sh 'Just deployed to Firebase Hosting'",
  "public": "public"
}

File skrip messageSlack.sh berada dalam direktori project dan akan terlihat seperti ini:

curl -X POST -H 'Content-type: application/json' --data '{"text":"$1"}'
     \https://SLACK_WEBHOOK_URL

Anda dapat menyiapkan hook predeploy dan postdeploy untuk aset mana pun yang dapat di-deploy. Perlu diperhatikan bahwa menjalankan firebase deploy akan memicu semua tugas pra-deployment dan pasca-deployment yang ditentukan dalam file firebase.json Anda. Untuk menjalankan tugas yang terkait dengan layanan Firebase tertentu saja, gunakan perintah deployment parsial.

Baik hook predeploy maupun postdeploy akan mencetak output standar dan aliran error skrip ke terminal. Untuk kasus kegagalan, perhatikan hal-hal berikut:

  • Jika hook pra-deployment gagal diselesaikan seperti yang diharapkan, deployment akan dibatalkan.
  • Jika deployment gagal karena suatu alasan, hook pasca-deployment tidak akan dipicu.

Variabel lingkungan

Dalam skrip yang berjalan di hook pra-deployment dan pasca-deployment, tersedia variabel lingkungan berikut:

  • $GCLOUD_PROJECT: Project ID dari project yang aktif
  • $PROJECT_DIR: Direktori root yang berisi file firebase.json
  • $RESOURCE_DIR: (Hanya untuk skrip hosting dan functions) Lokasi direktori yang berisi resource Hosting atau Cloud Functions yang akan di-deploy

Mengelola beberapa instance Realtime Database

Satu project Firebase dapat memiliki beberapa instance Firebase Realtime Database. Secara default, perintah CLI berinteraksi dengan instance database default Anda.

Namun, Anda dapat berinteraksi dengan instance database non-default menggunakan flag --instance DATABASE_NAME. Perintah berikut mendukung flag --instance:

  • firebase database:get
  • firebase database:profile
  • firebase database:push
  • firebase database:remove
  • firebase database:set
  • firebase database:update

Referensi perintah

Perintah administratif CLI

Perintah Deskripsi
help Menampilkan informasi bantuan tentang CLI atau perintah tertentu.
init Mengaitkan dan menyiapkan project Firebase baru di direktori saat ini. Perintah ini akan membuat file konfigurasi firebase.json di direktori saat ini.
login Mengautentikasi CLI ke akun Firebase Anda. Memerlukan akses ke browser web.
Untuk login ke CLI di lingkungan jarak jauh yang tidak mengizinkan akses ke localhost, gunakan flag --no-localhost.
login:ci Memunculkan token autentikasi untuk penggunaan di lingkungan non-interaktif.
logout Membuat CLI logout dari akun Firebase Anda.
open Membuka browser ke resource project yang relevan.
projects:list Mencantumkan semua project Firebase yang aksesnya Anda miliki.
use Menetapkan project Firebase yang aktif untuk CLI.
Mengelola alias project.

Perintah pengelolaan project

Perintah Deskripsi
Pengelolaan project Firebase
projects:addfirebase Menambahkan resource Firebase ke project Google Cloud yang ada.
projects:create Membuat project Google Cloud baru, lalu menambahkan resource Firebase ke project baru tersebut.
projects:list Mencantumkan semua project Firebase yang aksesnya Anda miliki.
Pengelolaan Aplikasi Firebase (iOS, Android, Web)
apps:create Membuat Aplikasi Firebase baru di project yang aktif.
apps:list Mencantumkan Aplikasi Firebase yang terdaftar di project yang aktif.
apps:sdkconfig Mencetak konfigurasi layanan Google dari Aplikasi Firebase.
setup:web Tidak digunakan lagi. Sebagai gantinya, gunakan apps:sdkconfig dan tetapkan web sebagai argumen platform.
Mencetak konfigurasi layanan Google Aplikasi Web Firebase.
Pengelolaan hash sertifikat SHA (khusus Android)
apps:android:sha:create \
FIREBASE_APP_ID SHA_HASH
Menambahkan hash sertifikat SHA yang ditentukan ke Aplikasi Firebase Android yang ditentukan.
apps:android:sha:delete \
FIREBASE_APP_ID SHA_HASH
Menghapus hash sertifikat SHA yang ditentukan dari Aplikasi Firebase Android yang ditentukan.
apps:android:sha:list \
FIREBASE_APP_ID
Mencantumkan hash sertifikat SHA untuk Aplikasi Firebase Android yang ditentukan.

Deployment dan pengembangan lokal

Dengan perintah ini, Anda dapat men-deploy dan berinteraksi dengan situs Firebase Hosting.

Perintah Deskripsi
deploy Men-deploy kode dan aset dari direktori project Anda ke project yang aktif. Untuk Firebase Hosting, file konfigurasi firebase.json harus ada.
serve Memulai server web lokal dengan konfigurasi Firebase Hosting. Untuk Firebase Hosting, file konfigurasi firebase.json harus ada.

Perintah App Distribution

Perintah Deskripsi
appdistribution:distribute \
--app FIREBASE_APP_ID
Menyediakan build untuk penguji.
appdistribution:testers:add Menambahkan penguji ke project.
appdistribution:testers:remove Menghapus penguji dari project.

Perintah App Hosting

Perintah Deskripsi
apphosting:backends:create \
--project PROJECT_ID \
--location REGION --app APP_ID
Membuat kumpulan resource terkelola yang ditautkan ke satu codebase yang terdiri dari backend App Hosting. Jika ingin, tentukan aplikasi Web Firebase yang ada berdasarkan ID aplikasi Firebase-nya.
apphosting:backends:get \
BACKEND_ID \
--project PROJECT_ID \
--location REGION
Mengambil detail tertentu, termasuk URL publik, dari backend.
apphosting:backends:list \
--project PROJECT_ID
Mengambil daftar semua backend aktif yang terkait dengan project.
firebase apphosting:backends:delete \
BACKEND_ID \
--project PROJECT_ID \
--location REGION
Menghapus backend dari project.
firebase apphosting:config:export \
--project PROJECT_ID \
--secrets ENVIRONMENT_NAME
Mengekspor secret untuk digunakan dalam emulasi aplikasi.
Secara default menggunakan secret yang disimpan di apphosting.yaml, atau menggunakan --secrets untuk menentukan lingkungan apa pun yang memiliki file apphosting.ENVIRONMENT_NAME.yaml yang sesuai.
firebase apphosting:rollouts:create \
BACKEND_ID \
--git_branch BRANCH_NAME \
--git_commit COMMIT_ID
Membuat peluncuran yang dipicu secara manual.
Secara opsional, tentukan commit terbaru ke cabang atau commit tertentu. Jika tidak ada opsi yang diberikan, minta pemilihan dari daftar cabang.
apphosting:secrets:set KEY --project PROJECT_ID \
--location REGION \
--data-file DATA_FILE_PATH
Menyimpan materi rahasia di Secret Manager.
Jika ingin, berikan jalur file tempat membaca data secret. Tetapkan ke _ untuk membaca data secret dari input standar.
apphosting:secrets:grantaccess KEY BACKEND_ID \
--project PROJECT_ID \
--location REGION
Memberikan akses akun layanan backend ke rahasia yang disediakan sehingga dapat diakses oleh App Hosting pada waktu build atau runtime.
apphosting:secrets:describe KEY \
--project PROJECT_ID
Mendapatkan metadata untuk rahasia dan versinya.
firebase apphosting:secrets:access \
KEY[@version] \
--project PROJECT_ID
Mengakses nilai rahasia berdasarkan rahasia dan versinya. Secara default, akses ke versi terbaru.

Perintah (pengelolaan pengguna) Authentication

Perintah Deskripsi
auth:export Mengekspor akun pengguna dalam project yang aktif ke file JSON atau CSV. Untuk mengetahui informasi lebih lanjut, baca halaman auth:import dan auth:export.
auth:import Mengimpor akun pengguna dari file JSON atau CSV ke project yang aktif. Untuk mengetahui detail selengkapnya, baca halaman auth:import dan auth:export.

Perintah Cloud Firestore

Perintah Deskripsi
firestore:locations

Cantumkan lokasi yang tersedia untuk database Cloud Firestore Anda.

firestore:databases:create DATABASE_ID

Buat instance database dalam mode native di project Firebase Anda.

Perintah tersebut mengambil flag berikut:

  • --location <region name> guna menentukan lokasi deployment untuk database. Perhatikan bahwa Anda dapat menjalankan firebase firestore:locations untuk mencantumkan lokasi yang tersedia. Wajib.
  • --delete-protection <deleteProtectionState> untuk mengizinkan atau mencegah penghapusan database yang ditentukan. Nilai yang valid adalah ENABLED atau DISABLED. Nilai defaultnya adalah DISABLED
  • --point-in-time-recovery <PITRState> untuk menetapkan apakah pemulihan point-in-time diaktifkan. Nilai yang valid adalah ENABLED atau DISABLED. Nilai defaultnya adalah DISABLED Opsional.
firestore:databases:list

Mencantumkan database dalam project Firebase.

firestore:databases:get DATABASE_ID

Mendapatkan konfigurasi database untuk database yang ditentukan dalam project Firebase Anda.

firestore:databases:update DATABASE_ID

Memperbarui konfigurasi database dari database yang ditentukan dalam project Firebase Anda.

Setidaknya satu flag wajib diisi. Perintah tersebut mengambil flag berikut:

  • --delete-protection <deleteProtectionState> untuk mengizinkan atau mencegah penghapusan database yang ditentukan. Nilai yang valid adalah ENABLED atau DISABLED. Nilai defaultnya adalah DISABLED
  • --point-in-time-recovery <PITRState> untuk menetapkan apakah pemulihan point-in-time diaktifkan. Nilai yang valid adalah ENABLED atau DISABLED. Nilai defaultnya adalah DISABLED Opsional.
firestore:databases:delete DATABASE_ID

Menghapus database di project Firebase.

firestore:indexes

Buat daftar indeks untuk database di project Firebase Anda.

Perintah tersebut menggunakan flag berikut:

  • --database DATABASE_ID untuk menentukan nama database yang akan dicantumkan indeksnya. Jika tidak disediakan, indeks akan dicantumkan untuk database default.
firestore:delete

Menghapus dokumen di database project yang aktif. Dengan CLI, Anda dapat menggunakan penghapusan berulang untuk menghapus semua dokumen dalam koleksi.

Perlu diperhatikan bahwa penghapusan data Cloud Firestore dengan CLI akan menimbulkan biaya baca dan penghapusan. Untuk mengetahui informasi lebih lanjut, lihat Memahami penagihan Cloud Firestore.

Perintah tersebut menggunakan flag berikut:

  • --database DATABASE_ID untuk menentukan nama database tempat dokumen dihapus. Jika tidak ditentukan, dokumen akan dihapus dari database default. Opsional.

Perintah Cloud Functions for Firebase

Perintah Deskripsi
functions:config:clone Meng-clone lingkungan project lain ke dalam project Firebase yang aktif.
functions:config:get Mengambil nilai konfigurasi yang ada dari Cloud Functions project yang aktif.
functions:config:set Menyimpan nilai konfigurasi runtime dari Cloud Functions project yang aktif.
functions:config:unset Menghapus nilai dari konfigurasi runtime project yang aktif.
functions:log Membaca log dari Cloud Functions yang di-deploy.

Untuk mengetahui informasi lebih lanjut, baca dokumentasi konfigurasi lingkungan.

Perintah Crashlytics

Perintah Deskripsi
crashlytics:mappingfile:generateid \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML
Menghasilkan ID file pemetaan unik dalam file resource Android (XML) yang ditentukan.
crashlytics:mappingfile:upload \
--app=FIREBASE_APP_ID \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML \
PATH/TO/MAPPING_FILE.TXT
Mengupload file pemetaan yang kompatibel dengan Proguard (TXT) untuk aplikasi ini, dan mengaitkannya dengan ID file pemetaan yang dideklarasikan dalam file resource Android (XML) yang ditentukan.
crashlytics:symbols:upload \
--app=FIREBASE_APP_ID \
PATH/TO/SYMBOLS
Menghasilkan file simbol yang kompatibel dengan Crashlytics untuk error library native di Android dan menguploadnya ke server Firebase.

Perintah Data Connect

Perintah ini dan kasus penggunaannya dibahas lebih mendetail dalam panduan referensi Data Connect CLI.

Perintah Deskripsi
dataconnect:services:list Mencantumkan semua layanan Data Connect yang di-deploy di project Firebase Anda.
dataconnect:sql:diff \
SERVICE_ID
Untuk layanan yang ditentukan, menampilkan perbedaan antara skema Data Connect lokal dan skema database Cloud SQL Anda.
dataconnect:sql:migrate \
--force \
SERVICE_ID
Memigrasikan skema database Cloud SQL agar cocok dengan skema Data Connect lokal Anda.
dataconnect:sql:grant\
--role=ROLE \
--email=EMAIL \
SERVICE_ID
Memberikan peran SQL ke email pengguna atau akun layanan yang ditentukan.
Untuk flag --role, peran SQL yang akan diberikan adalah salah satu dari: owner, writer, atau reader.
Untuk flag --email, berikan alamat email pengguna atau akun layanan yang akan diberi peran.
dataconnect:sdk:generate Membuat SDK berjenis untuk konektor Data Connect Anda.

Perintah Extensions

Perintah Deskripsi
ext Menampilkan informasi tentang cara menggunakan perintah Firebase Extensions.
Mencantumkan instance ekstensi yang terinstal di project yang aktif.
ext:configure \
EXTENSION_INSTANCE_ID
Mengonfigurasi ulang parameter value instance ekstensi di manifes ekstensi.
ext:info \
PUBLISHER_ID/EXTENSION_ID
Mencetak informasi mendetail terkait sebuah ekstensi.
ext:install \
PUBLISHER_ID/EXTENSION_ID
Menambahkan instance ekstensi baru ke dalam manifes ekstensi.
ext:list Mencantumkan semua instance ekstensi yang terinstal di project Firebase.
Mencetak ID instance untuk setiap ekstensi.
ext:uninstall \
EXTENSION_INSTANCE_ID
Menghapus instance ekstensi dari manifes ekstensi.
ext:update \
EXTENSION_INSTANCE_ID
Mengupdate instance ekstensi ke versi terbaru dalam manifes ekstensi.
ext:export Mengekspor semua instance ekstensi yang diinstal dari project Anda ke manifes ekstensi.

Perintah penayang Extensions

Perintah Deskripsi
ext:dev:init Menginisialisasi codebase kerangka untuk ekstensi baru di direktori saat ini.
ext:dev:list \
PUBLISHER_ID
Mencetak daftar semua ekstensi yang diupload oleh penayang.
ext:dev:register Mendaftarkan project Firebase sebagai project penayang ekstensi.
ext:dev:deprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Menghentikan penggunaan versi ekstensi yang cocok dengan predikat versi.
Predikat versi dapat berupa versi tunggal (seperti 1.0.0), atau rentang versi (seperti >1.0.0).
Jika predikat versi tidak tersedia, semua versi ekstensi tersebut akan dihentikan.
ext:dev:undeprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Menghentikan penggunaan versi ekstensi yang cocok dengan predikat versi.
Predikat versi dapat berupa versi tunggal (seperti 1.0.0), atau rentang versi (seperti >1.0.0).
Jika predikat versi tidak tersedia, semua versi ekstensi tersebut akan dihentikan.
ext:dev:upload \
PUBLISHER_ID/EXTENSION_ID
Mengupload versi baru sebuah ekstensi.
ext:dev:usage \
PUBLISHER_ID
Menampilkan jumlah instal dan metrik penggunaan untuk ekstensi yang diupload oleh penayang.

Perintah Hosting

Perintah Deskripsi
hosting:disable

Menghentikan penyaluran traffic Firebase Hosting untuk project Firebase yang aktif.

URL Hosting project Anda akan menampilkan pesan "Site Not Found" setelah perintah ini dijalankan.

Pengelolaan situs Hosting
firebase hosting:sites:create \
SITE_ID

Membuat situs Hosting baru di project Firebase yang aktif menggunakan SITE_ID yang ditentukan

(Opsional) Tentukan Aplikasi Web Firebase yang ada untuk dikaitkan dengan situs baru dengan meneruskan flag berikut: --app FIREBASE_APP_ID

firebase hosting:sites:delete \
SITE_ID

Menghapus situs Hosting yang ditentukan

CLI akan menampilkan permintaan konfirmasi sebelum menghapus situs.

(Opsional) Lewati permintaan konfirmasi dengan meneruskan flag berikut: -f atau --force

firebase hosting:sites:get \
SITE_ID

Mengambil informasi tentang situs Hosting yang ditentukan

firebase hosting:sites:list

Mencantumkan semua situs Hosting untuk project Firebase yang aktif

Pengelolaan saluran pratinjau
firebase hosting:channel:create \
CHANNEL_ID

Membuat saluran pratinjau baru di situs Hosting default menggunakan CHANNEL_ID yang ditentukan

Perintah ini tidak melakukan deployment ke saluran.

firebase hosting:channel:delete \
CHANNEL_ID

Menghapus saluran pratinjau yang ditentukan

Anda tidak dapat menghapus saluran live situs.

firebase hosting:channel:deploy \
CHANNEL_ID

Men-deploy konten dan konfigurasi Hosting ke saluran pratinjau yang ditentukan

Jika saluran pratinjau belum ada, perintah ini akan membuat saluran tersebut di situs Hosting default sebelum melakukan deployment ke sana.

firebase hosting:channel:list Mencantumkan semua saluran (termasuk saluran "live") di situs Hosting default
firebase hosting:channel:open \
CHANNEL_ID
Membuka browser ke URL saluran yang ditentukan, atau menampilkan URL jika tidak dapat membuka saluran di browser
Meng-clone versi
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Meng-clone versi yang terakhir di-deploy di saluran "sumber" yang ditentukan ke saluran "target" yang ditentukan

Perintah ini juga melakukan deployment ke saluran "target" yang ditentukan. Jika saluran "target" belum ada, perintah ini akan membuat saluran pratinjau baru di situs Hosting "target" sebelum melakukan deployment ke sana.

firebase hosting:clone \
SOURCE_SITE_ID:@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Meng-clone versi yang ditentukan ke saluran "target" yang ditentukan

Perintah ini juga melakukan deployment ke saluran "target" yang ditentukan. Jika saluran "target" belum ada, perintah ini akan membuat saluran pratinjau baru di situs Hosting "target" sebelum melakukan deployment ke sana.

Anda dapat menemukan VERSION_ID di dasbor Hosting pada Firebase console.

Perintah Realtime Database

Perlu diperhatikan bahwa Anda dapat membuat instance Realtime Database default awal di Firebase console atau menggunakan alur kerja firebase init umum atau alur firebase init database tertentu.

Setelah instance dibuat, Anda dapat mengelolanya seperti yang dibahas di bagian Mengelola beberapa instance Realtime Database.

Perintah Deskripsi
database:get Mengambil data dari database project yang aktif dan menampilkannya sebagai JSON. Mendukung pembuatan kueri atas data terindeks.
database:instances:create Membuat instance database dengan nama instance yang ditetapkan. Menerima opsi --location untuk membuat database di region yang ditetapkan. Untuk mengetahui daftar nama region yang dapat digunakan dengan opsi ini, lihat bagian memilih lokasi untuk project Anda. Jika tidak ada instance database untuk project saat ini, Anda akan diminta untuk menjalankan alur firebase init untuk membuat instance.
database:instances:list Mencantumkan semua instance database untuk project ini. Menerima opsi --location untuk mencantumkan database di region yang ditetapkan. Untuk mengetahui daftar nama region yang dapat digunakan dengan opsi ini, lihat bagian memilih lokasi untuk project Anda.
database:profile Membuat profil operasi di database project yang aktif. Untuk mengetahui detail selengkapnya, baca bagian Jenis operasi Realtime Database.
database:push Mengirimkan data yang baru ke suatu daftar di lokasi tertentu dalam database project yang aktif. Mengambil input dari file, STDIN, atau argumen command line.
database:remove Menghapus semua data di lokasi tertentu dalam database project yang aktif.
database:set Mengganti semua data di lokasi tertentu dalam database project yang aktif. Mengambil input dari file, STDIN, atau argumen command line.
database:update Menjalankan pembaruan parsial di lokasi tertentu dalam database project yang aktif. Mengambil input dari file, STDIN, atau argumen command line.

Perintah Remote Config

Perintah Deskripsi
remoteconfig:versions:list \
--limit NUMBER_OF_VERSIONS
Mencantumkan sepuluh versi template terbaru. Tentukan 0 untuk menampilkan semua versi yang ada, atau teruskan opsi --limit untuk membatasi jumlah versi yang ditampilkan.
remoteconfig:get \
--v, version_number VERSION_NUMBER
--o, output FILENAME
Mendapatkan template berdasarkan versi (ditetapkan secara default ke versi terbaru) dan membuat output grup parameter, parameter, serta nama dan versi kondisi ke tabel. Jika ingin, Anda dapat menuliskan output ke file tertentu dengan -o, FILENAME.
remoteconfig:rollback \
--v, version_number VERSION_NUMBER
--force
Melakukan roll back template Remote Config ke nomor versi sebelumnya yang ditentukan atau menetapkan secara default ke satu versi sebelumnya (versi saat ini -1). Jika --force tidak diteruskan, meminta Y/N sebelum melanjutkan ke rollback.