Buka konsol

Referensi Firebase CLI

Firebase CLI (GitHub) menyediakan beragam fitur untuk mengelola, melihat, dan melakukan penerapan ke project Firebase.

Sebelum menggunakan Firebase CLI, siapkan project Firebase.

Menginstal Firebase CLI

Firebase CLI (antarmuka command-line) memerlukan Node.js dan npm (Node Package Manager).

  1. Instal Node.js menggunakan salah satu opsi berikut. Menginstal Node.js secara otomatis menginstal npm.

    • Untuk Mac/Linux, gunakan nvm (Node Version Manager).
    • Untuk Windows, gunakan nvm-windows.
  2. Instal Firebase CLI menggunakan npm dengan menjalankan:

    npm install -g firebase-tools

    Perintah ini menginstal perintah firebase yang tersedia secara global. Untuk melakukan update ke versi Firebase CLI terbaru, jalankan kembali perintah npm install yang sama.

  3. Login ke Firebase menggunakan akun Google Anda dengan menjalankan:

    firebase login

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

  4. Untuk menguji bahwa autentikasi tersebut berfungsi (dan untuk mencantumkan semua project Firebase Anda), jalankan perintah berikut:

    firebase list

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

Mengupdate ke versi CLI terbaru

Pastikan Anda menggunakan versi Firebase CLI terbaru dengan menjalankan kembali perintah penginstalan CLI:

npm install -g firebase-tools

Menginisialisasi project Firebase

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

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

firebase init

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

  • Memilih produk Firebase yang diinginkan, lalu menetapkan konfigurasi file tertentu untuk produk yang dipilih.

    Untuk menyiapkan produk Firebase tertentu bagi project, baca dokumentasi produk tersebut untuk mengetahui informasi penyiapannya (misalnya, Hosting). Perhatikan bahwa Anda selalu dapat menjalankan firebase init nanti untuk menyiapkan produk Firebase lainnya.

  • Memilih 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 membuat dan menambahkan dua file ke root direktori aplikasi lokal Anda secara otomatis:

  • 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 menerapkan aset dengan Firebase CLI karena menentukan file dan setelan mana dari direktori project Anda yang diterapkan ke project Firebase Anda. Karena beberapa setelan dapat ditentukan di direktori project Anda atau Firebase console, pastikan Anda menyelesaikan setiap potensi konflik penerapan.

Anda dapat mengonfigurasikan sebagian besar opsi Firebase Hosting langsung di file firebase.json. Namun, untuk layanan Firebase lain yang dapat diterapkan dengan Firebase CLI, perintah firebase init membuat file tertentu yang dapat Anda gunakan untuk menentukan setelan bagi layanan tersebut, seperti file index.js untuk Cloud Functions. Anda juga dapat menyiapkan hook pra-penerapan atau pasca-penerapan di file firebase.json.

Berikut ini contoh file firebase.json dengan setelan default jika Anda memilih Firebase Hosting, Cloud Firestore, dan Cloud Functions for Firebase 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"
    ]
  }
}

Menyajikan dan menguji project Firebase Anda secara lokal

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

Jalankan perintah berikut dari root direktori project lokal jika Amda ingin:

firebase serve --only hosting

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

  • Guna mengemulasikan fungsi dan hosting HTTP untuk diuji 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

Menerapkan ke project Firebase

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

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

Untuk menerapkan ke project Firebase, jalankan perintah berikut dari direktori project Anda:

firebase deploy

Secara default, firebase deploy membuat rilis untuk semua resource yang dapat diterapkan dalam direktori project Anda. Untuk menerapkan layanan atau fitur Firebase tertentu, gunakan penerapan parsial.

Perhatikan bahwa untuk menerapkan resource dari direktori project, direktori project harus memiliki file firebase.json. File ini otomatis dibuat untuk Anda oleh perintah firebase init.

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

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

Konflik penerapan 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 penerapan adalah menggunakan penerapan parsial dan hanya menentukan aturan di Firebase console.

Kuota penerapan

Anda mungkin saja (meskipun kemungkinannya kecil) melebihi kuota yang membatasi tingkat atau volume operasi penerapan Firebase. Misalnya, saat menerapkan sejumlah besar fungsi, Anda mungkin menerima pesan error HTTP 429 Quota. Untuk mengatasi masalah tersebut, coba gunakan penerapan parsial atau minta penambahan kuota untuk layanan Firebase tertentu. Misalnya, kuota yang dinamakan Permintaan tulis per 100 detik per pengguna mungkin dapat mengatasi error Cloud Functions 429 sebagaimana dikutip di atas.

Melakukan rollback penerapan

Anda melakukan roll back penerapan Firebase Hosting dari halaman Firebase Hosting project 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.

Menerapkan layanan Firebase tertentu

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

firebase deploy --only hosting,storage

Tabel berikut berisi daftar layanan dan fitur yang tersedia untuk penerapan parsial. Nama-nama di tanda sesuai dengan kunci pada file konfigurasi firebase.json Anda.

Sintaks tanda Layanan atau fitur yang diterapkan
--only hosting Konten Firebase Hosting
--only database Aturan Firebase Realtime Database
--only storage Aturan Cloud Storage for Firebase
--only firestore Aturan dan indeks Cloud Firestore
--only firestore:rules Aturan Cloud Firestore
--only firestore:indexes Indeks Cloud Firestore
--only functions Cloud Functions for Firebase (mungkin ada versi yang lebih spesifik dari tanda ini)

Menerapkan fungsi tertentu

Saat menerapkan fungsi, Anda dapat menargetkan fungsi tertentu. Misalnya:

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 fungsi pengelompokan, Anda dapat menerapkan beberapa fungsi menggunakan satu perintah.

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

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

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:

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

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

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

firebase deploy --only functions:groupA

Atau, Anda dapat menargetkan fungsi spesifik 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 diterapkan:

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

    firebase functions:delete function1-name

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

    firebase functions:delete function1-name --region region-name

  • Menghapus lebih dari satu fungsi:

    firebase functions:delete function1-name function2-name

  • Menghapus grup fungsi yang ditentukan:

    firebase functions:delete group-name

  • Mengabaikan perintah konfirmasi:

    firebase functions:delete function1-name --force

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

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

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

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

"hosting": {
  // ...

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

File skrip messageSlack.sh berada dalam direktori project dan 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 setiap aset yang dapat diterapkan. Perhatikan bahwa menjalankan firebase deploy akan memicu semua tugas pra-penerapan dan pasca-penerapan yang ditentukan dalam file firebase.json Anda. Untuk menjalankan tugas yang terkait dengan layanan Firebase tertentu saja, gunakan perintah penerapan parsial.

Baik hook predeploy dan postdeploy mencetak output standar dan aliran error skrip ke terminal. Untuk kasus kegagalan, perhatikan bahwa:

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

Variabel lingkungan

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

  • $GCLOUD_PROJECT — Project ID yang aktif.
  • $PROJECT_DIR — Direktori root yang berisi firebase.json
  • $RESOURCE_DIR(Khusus untuk hosting dan functions) Lokasi direktori yang berisi resource Hosting atau Cloud Functions yang akan diterapkan

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 diterapkan ke produksi. Perintah firebase use memungkinkan Anda beralih antar-alias dan membuat alias baru.

Menambahkan alias project

Ketika Anda memilih project Firebase selama inisialisasi project, alias project otomatis disebut default. Namun, untuk mengizinkan perintah khusus project dijalankan atas project Firebase lain, tetapi menggunakan direktori project yang sama, jalankan perintah berikut dari dalam direktori project Anda.

firebase use --add

Perintah ini meminta Anda untuk memilih project Firebase lain dan memberinya alias yang ditentukan. Definisi alias dituliskan ke file .firebaserc di dalam direktori project Anda.

Menggunakan alias project

Untuk menggunakan alias project Firebase yang ditentukan, 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 alias_or_projectID Beralih antar-alias untuk direktori project Anda
firebase use --clear Menghapus alias yang saat ini "digunakan" dan mengarahkan semua perintah ke alias default
firebase use --unalias alias Menghapus alias dari direktori project Anda

Saat menggunakan alias, semua perintah khusus project (seperti firebase deploy atau firebase data:get) akan dijalankan terhadap project Firebase yang saat ini "digunakan". Jika hanya ada satu alias yang ditetapkan dalam direktori project Anda, setiap perintah khusus project akan otomatis dijalankan terhadap alias tersebut.

Kontrol sumber dan alias project Firebase

Secara umum, Anda harus memeriksa file .firebaserc terhadap kontrol sumber. Hal ini memungkinkan tim untuk menggunakan alias project bersama. Namun, untuk project open source atau template starter, biasanya Anda tidak perlu memeriksa file .firebaserc.

Jika Anda memiliki project development untuk penggunaan sendiri, Anda dapat meneruskan tanda --project dengan setiap perintah atau menjalankan firebase use projectID tanpa menetapkan alias untuk project Firebase.

Mengelola beberapa instance Firebase Realtime Database

Jika satu project memiliki beberapa instance Realtime Database, gunakan opsi --instance instance-name untuk berinteraksi dengan instance database non-default, instance-name.firebaseio.com.

Perintah berikut mendukung opsi --instance:

Perintah
database:profile
database:remove
database:push
database:set
database:update
database:get

Referensi perintah

Perintah administratif

Perintah Deskripsi
login Mengautentikasi akun Firebase. Memerlukan akses ke browser web.
logout Logout dari Firebase CLI.
login:ci Memunculkan token autentikasi untuk penggunaan di lingkungan non-interaktif.
list Menampilkan daftar semua project Firebase.
use Menetapkan project Firebase aktif, mengelola alias project.
open Membuka browser dengan cepat ke resource project yang relevan.
init Menyiapkan project Firebase baru di direktori saat ini. Perintah ini akan membuat file konfigurasi firebase.json di direktori saat ini.
help Menampilkan informasi bantuan tentang CLI atau perintah tertentu.

Penerapan dan pengembangan lokal

Dengan perintah ini, Anda dapat menerapkan dan berinteraksi dengan situs Firebase Hosting.

Perintah Deskripsi
deploy Menerapkan kode dan aset dari direktori project ke project Firebase Anda. 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 Realtime Database

Perintah Deskripsi
database:get Mengambil data dari database project saat ini dan menampilkannya sebagai JSON. Mendukung kueri atas data terindeks.
database:set Mengganti semua data di lokasi tertentu dalam database project saat ini. Mengambil input dari file, STDIN, atau argumen baris perintah.
database:update Menjalankan update parsial di lokasi tertentu dalam database project saat ini. Mengambil input dari file, STDIN, atau argumen baris perintah.
database:push Mendorong data baru ke daftar di lokasi yang ditentukan dalam database project saat ini. Mengambil input dari file, STDIN, atau argumen baris perintah.
database:remove Menghapus semua data di lokasi tertentu dalam database project saat ini.
database:profile Membuat profil operasi di database project Anda. Lihat Profil Realtime Database untuk mengetahui informasi selengkapnya tentang operasi.

Perintah Hosting

Perintah Deskripsi
hosting:disable Berhenti melayani traffic Firebase Hosting untuk project aktif. Pesan "Situs Tidak Ditemukan" akan ditampilkan di URL Hosting project setelah perintah ini dijalankan.

Perintah Cloud Firestore

Perintah Deskripsi
firestore:delete Menghapus dokumen di Cloud Firestore. Dengan Firebase CLI, Anda dapat menggunakan penghapusan berulang untuk menghapus semua dokumen dalam koleksi.

Perintah Cloud Functions

Perintah Deskripsi
functions:log Membaca log dari Cloud Functions yang diterapkan.
functions:config:set Menyimpan nilai konfigurasi runtime untuk Cloud Functions project saat ini.
functions:config:get Mengambil nilai konfigurasi untuk Cloud Functions project saat ini.
functions:config:unset Menghapus nilai dari konfigurasi runtime project saat ini.
functions:config:clone Menyalin konfigurasi runtime dari satu lingkungan project ke lingkungan lainnya.

Untuk informasi lebih lanjut, lihat Konfigurasi Lingkungan.

Perintah pengelolaan pengguna

Perintah Deskripsi
auth:import Mengimpor akun pengguna dari file ke dalam project aktif. Lihat halaman auth:import dan auth:export untuk mengetahui informasi selengkapnya.
auth:export Mengekspor akun pengguna project yang aktif ke file JSON atau CSV. Lihat halaman auth:import dan auth:export untuk mengetahui informasi selengkapnya.