Target deploy

Target deploy adalah ID singkat (yang Anda tentukan sendiri) untuk resource Firebase di project Firebase, seperti situs Hosting dengan aset statis yang unik atau grup instance Realtime Database yang menggunakan aturan keamanan yang sama.

Target deployment akan berguna saat Anda memiliki beberapa situs Hosting, beberapa bucket Cloud Storage, atau beberapa instance Realtime Database. Dengan menggunakan target deploy, Firebase CLI dapat men-deploy setelan ke resource atau grup resource Firebase tertentu di project Anda, seperti:

  • Konfigurasi hosting untuk setiap situs Hosting
  • Aset statis dari direktori project untuk setiap situs Hosting
  • Aturan keamanan yang digunakan bersama oleh beberapa instance Realtime Database atau beberapa bucket Cloud Storage

Untuk menyiapkan target deploy:

  1. Terapkan TARGET_NAME ke resource Firebase atau grup resource Firebase yang ditargetkan.
  2. Dalam file firebase.json, referensikan TARGET_NAME terkait saat Anda mengonfigurasi setelan untuk setiap resource atau grup resource.

Saat Anda menjalankan perintah Firebase CLI (seperti firebase deploy), Firebase CLI akan memasangkan setiap TARGET_NAME dengan resource Firebase terkaitnya. CLI kemudian berkomunikasi dengan project Firebase Anda mengenai setelan untuk setiap resource.

Menyiapkan target deploy untuk resource Firebase

Dengan menggunakan Firebase CLI, terapkan TARGET_NAME (ID singkat yang Anda tentukan sendiri) ke resource Firebase atau grup resource Firebase. Firebase mendukung target deploy untuk:

Setelan untuk target deploy disimpan di file .firebaserc dalam direktori project Anda, sehingga Anda hanya perlu menyiapkan target deploy sekali per project.

Menyiapkan target deployment untuk Hosting

Untuk membuat target deploy dan menerapkan TARGET_NAME ke situs Hosting, jalankan perintah CLI berikut:

firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER

Dengan parameter:

  • TYPE — jenis resource Firebase yang relevan

    • Untuk situs Firebase Hosting, gunakan hosting.
  • TARGET_NAME — nama unik untuk situs Hosting yang menjadi tujuan deploy

  • RESOURCE_IDENTIFIERSITE_ID untuk situs Hosting seperti yang tercantum dalam project Firebase Anda

Misalnya, jika Anda telah membuat dua situs (myapp-blog dan myapp-app) di project Firebase, Anda dapat menerapkan TARGET_NAME yang unik (masing-masing blog danapp) ke setiap situs dengan menjalankan perintah berikut:

firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app

Menyiapkan target deployment untuk Cloud Storage atau Realtime Database

Untuk membuat target deploy dan menerapkan TARGET_NAME ke kumpulan resource Cloud Storage atau Realtime Database, jalankan perintah CLI berikut:

firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...

Dengan parameter:

  • TYPE — jenis resource Firebase yang relevan

    • Untuk bucket Cloud Storage, gunakan storage.
    • Untuk instance Realtime Database, gunakan database.
  • TARGET_NAME — nama unik untuk resource atau grup resource yang menggunakan aturan keamanan yang sama

  • RESOURCE_IDENTIFIER — ID untuk resource seperti yang tercantum dalam project Firebase Anda (seperti nama bucket penyimpanan atau ID instance database) yang semuanya menggunakan aturan keamanan yang sama

Misalnya, Anda dapat menerapkan TARGET_NAME dari main ke grup yang terdiri dari tiga bucket Cloud Storage regional (yang semuanya menggunakan aturan keamanan yang sama) dengan menjalankan perintah berikut:

firebase target:apply storage main myproject.firebasestorage.app myproject-eu myproject-ja

Perhatikan bahwa myproject.firebasestorage.app adalah ID untuk bucket default, sedangkan myproject-eu dan myproject-ja adalah dua bucket tambahan yang dibuat dalam project Firebase.

Mengonfigurasikan file firebase.json untuk menggunakan target deploy

Setelah Anda menyiapkan target deploy untuk resource Firebase, referensikan setiap TARGET_NAME yang diterapkan dalam file konfigurasi firebase.json Anda:

  1. Buat array objek konfigurasi untuk setiap TYPE resource Firebase (hosting, storage, atau database).
  2. Dalam array, tentukan target (menggunakan TARGET_NAME) dan tetapkan setelan untuk resource atau grup resource Firebase yang terkait.

Melanjutkan contoh di atas, jika project Firebase Anda memiliki dua situs Hosting dan tiga bucket Cloud Storage (yang menggunakan aturan keamanan yang sama), file firebase.json Anda akan terlihat seperti ini:

{
  "hosting": [ {
      "target": "blog",  // "blog" is the applied TARGET_NAME for the Hosting site "myapp-blog"
      "public": "blog/dist",  // contents of this folder are deployed to the site "myapp-blog"

      // ...
    },
    {
      "target": "app",  // "app" is the applied TARGET_NAME for the Hosting site "myapp-app"
      "public": "app/dist",  // contents of this folder are deployed to the site "myapp-app"

      // ...

      "rewrites": [...]  // You can define specific Hosting configurations for each site
    }
  ]
}

{
  "storage": [ {
      "target": "main",  // "main" is the applied TARGET_NAME for the group of Cloud Storage buckets
      "rules": "storage.main.rules"  // the file that contains the shared security rules
    }
  ]
}

Jika memiliki beberapa konfigurasi untuk resource, Anda dapat membuat beberapa target deploy dan menentukan setiap target di file firebase.json. Semua resource terkait akan di-deploy bersamaan saat Anda menjalankan firebase deploy.

Mengelola target deploy

Setelan untuk target deploy disimpan di file .firebaserc dalam direktori project Anda. Anda dapat mengelola target deploy project dengan menjalankan salah satu perintah berikut dari root direktori project.

Perintah Deskripsi
firebase target Mencantumkan target deploy untuk direktori project saat ini
firebase target:remove \
TYPE RESOURCE_IDENTIFIER
Menghapus resource dari target yang telah ditentukan
firebase target:clear \
TYPE TARGET_NAME
Menghapus semua resource atau situs Hosting dari target yang ditentukan

Perintah target:remove dan target:clear otomatis memperbarui setelan target deploy di file .firebaserc dalam direktori project Anda.

Menguji secara lokal sebelum men-deploy

Jalankan salah satu perintah berikut dari root direktori project Anda.

Perintah Deskripsi
firebase emulators:start Mengemulasi semua resource yang dikonfigurasi di direktori project Anda
firebase emulators:start \
--only hosting:TARGET_NAME
Hanya mengemulasi konten dan konfigurasi Hosting untuk situs Hosting yang ditentukan
firebase emulators:start \
--only storage:TARGET_NAME
Hanya mengemulasi file aturan untuk target Cloud Storage yang ditentukan
firebase emulators:start \
--only database:TARGET_NAME
Hanya mengemulasi file aturan untuk target Realtime Database yang ditentukan

Pelajari lebih lanjut cara mengonfigurasi dan menggunakan Firebase Local Emulator Suite.

Men-deploy resource Firebase tertentu

Jalankan salah satu perintah berikut dari root direktori project Anda.

Perintah Deskripsi
firebase deploy Membuat rilis untuk semua resource yang dapat di-deploy dalam direktori project Anda
firebase deploy \
--only hosting:TARGET_NAME
Hanya men-deploy konten dan konfigurasi Hosting untuk situs Hosting yang ditentukan ke saluran live untuk situs tersebut
firebase hosting:channel:deploy CHANNEL_ID \
--only TARGET_NAME
Hanya men-deploy konten dan konfigurasi Hosting untuk situs Hosting yang ditentukan ke saluran pratinjau untuk situs tersebut
firebase deploy \
--only storage:TARGET_NAME
Hanya men-deploy file aturan untuk target Cloud Storage yang ditentukan
firebase deploy \
--only database:TARGET_NAME
Hanya men-deploy file aturan untuk target Realtime Database yang ditentukan