Anda dapat menyiapkan satu atau beberapa situs Firebase Hosting dalam satu project Firebase. Karena semua situs berada dalam project Firebase yang sama, semua situs ini dapat mengakses resource Firebase lain dalam project tersebut.
- Setiap situs memiliki konfigurasi hosting sendiri.
- Setiap situs menghosting koleksi kontennya sendiri.
- Setiap situs dapat memiliki satu atau beberapa domain terkait.
Dengan menetapkan beberapa situs Hosting dalam project Firebase yang sama, Anda bisa lebih mudah membagikan resource Firebase di antara situs dan aplikasi yang terkait. Misalnya, jika blog, panel admin, dan aplikasi publik Anda semuanya ditetapkan sebagai situs individual dalam project Firebase yang sama, maka semuanya dapat berbagi database pengguna Firebase Authentication yang sama, selain juga memiliki domain atau konten uniknya sendiri.
Langkah 1: Update versi Firebase CLI Anda
Akses fitur Firebase Hosting terbaru dengan mengupdate Firebase CLI ke versi terbarunya.
Langkah 2: Tambahkan situs tambahan
Tambahkan situs tambahan ke project Firebase menggunakan salah satu metode berikut:
Menggunakan alur kerja di halaman Hosting pada Firebase console
Menggunakan perintah Firebase CLI:
firebase hosting:sites:create SITE_ID
Menggunakan REST API Hosting:
projects.sites.create
Untuk setiap metode tersebut, Anda perlu menentukan SITE_ID
yang digunakan untuk membuat subdomain default yang disediakan Firebase untuk situs:
SITE_ID.web.app
SITE_ID.firebaseapp.com
Karena SITE_ID
digunakan untuk URL ini, ID situs memiliki persyaratan berikut:
- Harus berupa label nama host yang valid, artinya tidak boleh berisi
.
,_
, dll. - Harus terdiri dari 30 karakter atau kurang
- Harus unik secara global dalam Firebase
Untuk setiap situs, Anda juga memiliki opsi untuk menambahkan domain kustom yang akan menayangkan konten dan konfigurasi yang sama ke beberapa URL.
Menghapus situs sekunder
Hapus situs yang tidak diinginkan dari project Firebase menggunakan salah satu metode berikut:
Menggunakan alur kerja di halaman Hosting pada Firebase console
Menggunakan perintah Firebase CLI:
firebase hosting:sites:delete SITE_ID
Menggunakan REST API Hosting:
projects.sites.delete
Perlu diperhatikan bahwa Anda tidak dapat menghapus situs default, yang memiliki SITE_ID
yang sama dengan ID project Firebase Anda.
Langkah 3: Siapkan target deploy untuk situs Anda
Jika Anda memiliki beberapa situs dan menjalankan perintah deploy Firebase CLI, CLI memerlukan cara untuk mengomunikasikan setelan yang harus di-deploy ke setiap situs. Dengan target deploy, Anda dapat mengidentifikasi situs tertentu secara unik dengan TARGET_NAME
di file konfigurasi firebase.json
dan di perintah Firebase CLI untuk menguji atau men-deploy ke situs Anda.
Untuk membuat target deploy dan menerapkan TARGET_NAME
ke situs Hosting, jalankan perintah CLI berikut dari direktori root project Anda:
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
Dengan parameter:
TARGET_NAME — nama unik (yang Anda tetapkan sendiri) untuk situs Hosting yang menjadi tujuan deploy
RESOURCE_IDENTIFIER—
SITE_ID
untuk situs Hosting Hostingseperti 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
dan app
) ke setiap situs dengan menjalankan perintah berikut:
firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app
Setelan untuk target deploy disimpan di file .firebaserc
dalam direktori project Anda, sehingga Anda hanya perlu menyiapkan target deploy sekali per project.
Langkah 4: Tetapkan konfigurasi hosting untuk setiap situs
Gunakan TARGET_NAME
yang diterapkan situs saat Anda menentukan konfigurasi hostingnya di file firebase.json
.
Jika file
firebase.json
Anda menetapkan konfigurasi untuk beberapa situs, gunakan format array:{ "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 } ] }
Jika file
firebase.json
Anda menetapkan konfigurasi untuk satu situs saja, format array tidak perlu digunakan:{ "hosting": { "target": "blog", "public": "dist", // ... "rewrites": [...] } }
Langkah 5: Uji secara lokal, pratinjau perubahan, dan deploy ke situs Anda
Jalankan salah satu perintah berikut dari direktori utama project lokal Anda.
Perintah | Deskripsi |
---|---|
firebase emulators:start --only hosting |
Mengemulasi konten dan konfigurasi Hosting untuk situs Hosting default di URL yang dihosting secara lokal |
firebase emulators:start --only hosting:TARGET_NAME |
Mengemulasi konten dan konfigurasi Hosting untuk situs Hosting yang ditentukan di URL yang dihosting secara lokal |
firebase hosting:channel:deploy \ |
Men-deploy konten dan konfigurasi Hosting untuk situs Hosting default di URL pratinjau |
firebase hosting:channel:deploy \ |
Men-deploy konten dan konfigurasi Hosting untuk situs Hosting yang ditentukan di URL pratinjau |
firebase deploy --only hosting |
Men-deploy konten dan konfigurasi Hosting ke saluran live untuk semua situs Hosting yang dikonfigurasi di firebase.json
|
firebase deploy --only hosting:TARGET_NAME |
Men-deploy konten dan konfigurasi Hosting ke saluran live untuk situs Hosting yang ditentukan |
Perintah | Deskripsi |
---|---|
(tidak direkomendasikan; gunakan emulators:start saja)firebase serve --only hosting |
Menayangkan konten dan konfigurasi Hosting untuk situs Hosting default di URL yang dihosting secara lokal |
(tidak direkomendasikan; gunakan emulators:start saja)firebase serve --only hosting:TARGET_NAME |
Menayangkan konten dan konfigurasi Hosting untuk situs Hosting yang ditentukan di URL yang dihosting secara lokal |