Buka konsol

Referensi Firebase CLI

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

Penyiapan

Sebelum dapat menginstal Firebase CLI, Anda harus menginstal Node.js di perangkat. Setelah Node.js diinstal, Anda dapat menginstal Firebase CLI menggunakan npm (Node Package Manager) dengan menjalankan perintah di bawah ini:

npm install -g firebase-tools

Sekarang, Anda seharusnya dapat mengakses perintah firebase yang tersedia secara global dari jendela terminal mana pun di perangkat Anda. Setelah memasang Firebase CLI, lakukan login menggunakan akun Google:

firebase login

Perintah ini menghubungkan perangkat lokal Anda dengan akun Firebase dan memberikan akses ke project Anda. Untuk menguji bahwa autentikasi tersebut berfungsi, Anda dapat menjalankan firebase list untuk melihat daftar semua project Firebase. Daftar tersebut harus sama dengan daftar project di Firebase console.

Mendapatkan versi terbaru

Anda dapat memastikan bahwa Firebase CLI Anda adalah versi terbaru dengan menjalankan ulang perintah penginstalan:

npm install -g firebase-tools

Direktori project

Banyak tugas umum yang dijalankan CLI, seperti penerapan, memerlukan Direktori Project. Direktori project adalah semua direktori yang memiliki file konfigurasi firebase.json. Secara umum, direktori project harus sama dengan root kontrol sumber, dan firebase.json biasanya disertai dengan file README dan file tingkat atas lainnya.

Menginisialisasi direktori project

Untuk menginisialisasi direktori project baru, ubahlah direktori di terminal ke direktori project yang diinginkan, lalu jalankan:

firebase init

Perintah init memandu Anda menyiapkan direktori project, termasuk menanyakan fitur Firebase mana yang ingin digunakan. Jangan khawatir, Anda selalu dapat menjalankan init kembali nanti untuk menambahkan fitur baru.

Langkah terakhir dari perintah init akan meminta Anda untuk memilih project Firebase default. Tindakan ini akan menghubungkan direktori dengan sebuah project sehingga ketika Anda menjalankan perintah khusus project seperti firebase deploy dari dalam direktori project, maka project yang tepat akan digunakan. Anda juga dapat menghubungkan beberapa project (seperti staging dan project produksi) dengan direktori yang sama.

Penerapan

Firebase CLI mengelola penerapan kode dan aset ke project Firebase Anda. Perintah firebase deploy mampu menerapkan:

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

Secara default, perintah deploy membuat rilis baru untuk semua resource yang dapat diterapkan dalam direktori project Anda. Direktori project harus memiliki firebase.json agar dapat menjalankan perintah penerapan.

Konflik penerapan

Ketika Anda menerapkan aturan keamanan untuk Firebase Database atau Storage, setiap aturan keamanan yang ada akan ditimpa. Artinya, setiap editan yang dibuat di Firebase Console mungkin hilang jika Anda menjalankan firebase deploy dari baris perintah. Jika Anda menentukan aturan dalam direktori project Firebase, jangan mengedit aturan di Firebase Console, atau update salinan aturan lokal segera setelah menerbitkannya.

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 lakukan penerapan parsial atau minta penambahan kuota. Anda dapat meminta penambahan kuota tertentu untuk layanan Firebase, termasuk kuota Permintaan tulis per 100 detik per pengguna yang terkait dengan error Cloud Functions sebagaimana dikutip di atas.

Melakukan roll back

Anda dapat melakukan roll back atau mengembalikan penerapan Firebase Hosting dengan mengunjungi panel Hosting untuk project Anda di Firebase Console dan memilih tindakan Rollback untuk rilis yang diinginkan. Saat ini, roll back rilis aturan Firebase Database atau Storage belum bisa dilakukan.

Penerapan sebagian

Jika Anda hanya ingin menerapkan fitur tertentu, gunakan daftar yang dipisahkan dengan koma dalam sebuah tanda pada perintah deploy. Misalnya:

firebase deploy --only hosting

Fitur yang valid untuk tanda --only adalah hosting, functions, database, storage, dan firestore. Nama-nama ini berkaitan dengan kunci pada file konfigurasi firebase.json.

Saat menerapkan fungsi, Anda dapat menargetkan fungsi tertentu:

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

Anda juga dapat mengelompokkan fungsi menjadi beberapa grup ekspor agar dapat menerapkan beberapa fungsi dalam satu perintah. Misalnya, Anda dapat menetapkan grup dalam functions/index.js seperti ini:

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

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

Dalam hal ini, functions/groupB.js berisi fungsi tambahan:

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

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

Anda dapat menerapkan semua fungsi dalam grup dengan menjalankan:

firebase deploy --only functions:groupA

Anda dapat menargetkan fungsi tertentu dalam grup dengan menjalankan:

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

Hook pra-penerapan dan pasca-penerapan

Anda dapat menghubungkan skrip shell ke perintah penerapan agar menjalankan 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 penerapan, tambahkan skrip bash ke file konfigurasi firebase.json untuk project tersebut. Skrip singkat dapat ditentukan secara langsung pada file, atau Anda dapat mereferensikannya dalam direktori project. Sebagai contoh, berikut ini ekspresi firebase.json untuk skrip pasca-penerapan yang mengirim pesan Slack setelah berhasil menyelesaikan penerapan ke Firebase hosting:

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

Skrip messageSlack.sh yang berada dalam direktori project akan terlihat seperti berikut:

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

Untuk aset yang dapat Anda terapkan—hosting, functions, database, storage, dan firestore—Anda dapat menambahkan hook predeploy dan postdeploy dalam firebase.json, dan skrip akan berjalan dengan perintah penerapan terkait. Baik hook pra-penerapan maupun pasca-penerapan mencetak output standar dan aliran error skrip ke terminal. Untuk kasus kegagalan, perhatikan bahwa:

  • Kegagalan untuk menyelesaikan hook pra-penerapan seperti yang diharapkan akan membatalkan penerapan.
  • Apabila penerapan gagal karena suatu alasan, hook pasca-penerapan tidak akan terpicu.

Variabel Lingkungan

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

  • $GCLOUD_PROJECT : Project ID yang aktif.
  • $PROJECT_DIR : Direktori root yang berisi firebase.json.
  • $RESOURCE_DIR : Untuk skrip hosting dan functions - Lokasi direktori yang berisi resource hosting atau fungsi yang akan digunakan.

Mengelola alias project

Anda dapat menghubungkan beberapa project Firebase dengan direktori kerja yang sama. Misalnya, Anda mungkin ingin menggunakan satu project Firebase untuk staging dan satu lagi untuk produksi. Penggunaan lingkungan project yang berbeda memungkinkan Anda untuk memverifikasi perubahan sebelum menerapkannya ke produksi. Perintah firebase use memungkinkan Anda beralih antara alias dan membuat alias baru.

Menambahkan alias project

Saat memilih project selama firebase init, alias default akan dibuatkan untuk Anda. Untuk membuat alias baru, jalankan:

firebase use --add

Perintah ini memungkinkan Anda untuk memilih project Firebase dan memberinya alias bernama. Definisi alias dituliskan ke file .firebaserc di dalam direktori project Anda.

Menggunakan alias project

Anda bisa melihat daftar alias yang saat ini ditetapkan untuk direktori project Anda dengan menjalankan firebase use. Untuk beralih antara alias, jalankan:

firebase use <alias_or_project_id>

Selagi menggunakan alias, semua perintah khusus project (seperti firebase deploy atau firebase data:get) akan berjalan terhadap project yang sedang digunakan. Jika hanya ada satu alias yang ditetapkan dalam direktori project Anda, maka alias tersebut akan digunakan secara otomatis.

Anda bisa menghapus alias saat ini dengan menjalankan firebase use --clear dan menghapus sebuah alias dengan menjalankan firebase use --unalias <alias>.

Kontrol sumber dan alias project

Secara umum, Anda harus memeriksa project .firebaserc terhadap kontrol sumber. Hal ini memungkinkan tim untuk menggunakan alias project bersama. Jika Anda memiliki project development untuk penggunaan sendiri, Anda dapat meneruskan tanda --project dengan setiap perintah atau menjalankan firebase use <project_id> tanpa menetapkannya sebagai alias.

Project open source atau template starter secara umum tidak memeriksa file .firebaserc.

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 Membuat project Firebase baru di direktori saat ini. Perintah ini akan membuat file konfigurasi firebase.json di direktori Anda 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 project Firebase. Mengandalkan konfigurasi firebase.json dan folder project lokal.
serve Memulai server web lokal dengan konfigurasi Firebase Hosting. Mengandalkan firebase.json.

Perintah 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.