Anda dapat menyiapkan satu atau beberapa situs Firebase Hosting dalam satu project Firebase. Karena semua situs berada dalam proyek Firebase yang sama, semua situs dapat mengakses sumber daya Firebase lain dari proyek tersebut.
- Setiap situs memiliki konfigurasi hosting sendiri.
- Setiap situs menghosting kumpulan kontennya sendiri.
- Setiap situs dapat memiliki satu atau lebih domain terkait .
Dengan menyiapkan beberapa situs Hosting dalam proyek Firebase yang sama, Anda dapat lebih mudah berbagi sumber daya Firebase antara situs dan aplikasi terkait. Misalnya, jika Anda menyiapkan blog, panel admin, dan aplikasi publik sebagai situs individual dalam proyek Firebase yang sama, semuanya dapat berbagi database pengguna Firebase Authentication yang sama, sekaligus memiliki domain atau konten uniknya sendiri.
Langkah 1 : Perbarui versi Firebase CLI Anda
Akses fitur Firebase Hosting terbaru dengan mengupdate ke versi terbaru Firebase CLI .
Langkah 2 : Tambahkan situs tambahan
Tambahkan situs tambahan ke proyek Firebase menggunakan salah satu metode berikut:
Gunakan alur kerja di halaman Hosting di konsol Firebase
Gunakan perintah Firebase CLI:
firebase hosting:sites:create SITE_ID
Gunakan Hosting REST API:
projects.sites.create
Untuk setiap metode ini, Anda akan menentukan SITE_ID
yang digunakan untuk membuat subdomain default yang disediakan oleh Firebase untuk situs tersebut:
-
SITE_ID .web.app
-
SITE_ID .firebaseapp.com
Karena SITE_ID
digunakan untuk URL ini, ID situs memiliki persyaratan berikut:
- Harus berupa label hostname yang valid, artinya tidak boleh berisi
.
,_
, dll. - Harus 30 karakter atau kurang
- Harus unik secara global di dalam Firebase
Untuk setiap situs, Anda juga dapat secara opsional menambahkan domain khusus untuk menyajikan konten dan konfigurasi yang sama ke beberapa URL.
Hapus situs sekunder
Hapus situs yang tidak diinginkan dari proyek Firebase menggunakan salah satu metode berikut:
Gunakan alur kerja di halaman Hosting di konsol Firebase
Gunakan perintah Firebase CLI:
firebase hosting:sites:delete SITE_ID
Gunakan Hosting REST API:
projects.sites.delete
Perhatikan bahwa Anda tidak dapat menghapus situs default, yang memiliki SITE_ID
yang sama dengan ID proyek Firebase Anda.
Langkah 3 : Siapkan target penerapan untuk situs Anda
Saat Anda memiliki beberapa situs dan menjalankan perintah penerapan Firebase CLI, CLI memerlukan cara untuk mengomunikasikan setelan mana yang harus diterapkan ke setiap situs. Dengan target penerapan, Anda dapat secara unik mengidentifikasi situs tertentu dengan TARGET_NAME
di file konfigurasi firebase.json
dan di perintah Firebase CLI untuk menguji atau menerapkan ke situs Anda.
Untuk membuat target penerapan dan menerapkan TARGET_NAME
ke situs Hosting, jalankan perintah CLI berikut dari akar direktori proyek Anda:
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
Dimana parameternya adalah:
TARGET_NAME — nama unik (yang Anda tentukan sendiri) untuk situs Hosting tempat Anda menerapkan
RESOURCE_IDENTIFIER —
SITE_ID
untuk situs Hosting sebagaimana tercantum dalam proyek Firebase Anda
Misalnya, jika Anda telah membuat dua situs ( myapp-blog
dan myapp-app
) di proyek Firebase, Anda dapat menerapkan TARGET_NAME
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 penerapan disimpan dalam file .firebaserc
di direktori project Anda, jadi Anda hanya perlu menyiapkan target penerapan satu kali per project.
Langkah 4 : Tentukan 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 menentukan 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 menentukan konfigurasi hanya untuk satu situs, Anda tidak perlu menggunakan format array:{ "hosting": { "target": "blog", "public": "dist", // ... "rewrites": [...] } }
Langkah 5 : Uji secara lokal, pratinjau perubahan, dan terapkan ke situs Anda
Jalankan salah satu perintah berikut dari root direktori proyek lokal Anda.
Memerintah | Keterangan |
---|---|
firebase emulators:start --only hosting | Mengemulasi konten Hosting dan konfigurasi situs Hosting default di URL yang dihosting secara lokal |
firebase emulators:start --only hosting: TARGET_NAME | Mengemulasi konten dan konfigurasi Hosting dari situs Hosting yang ditentukan di URL yang dihosting secara lokal |
firebase hosting:channel:deploy \ | Menyebarkan konten Hosting dan konfigurasi situs Hosting default di URL pratinjau |
firebase hosting:channel:deploy \ | Menyebarkan konten dan konfigurasi Hosting dari situs Hosting yang ditentukan di URL pratinjau |
firebase deploy --only hosting | Men-deploy konten dan konfigurasi Hosting ke saluran langsung dari semua situs Hosting yang dikonfigurasi di firebase.json |
firebase deploy --only hosting: TARGET_NAME | Menyebarkan konten dan konfigurasi Hosting ke saluran langsung dari situs Hosting yang ditentukan |
Memerintah | Keterangan |
---|---|
(tidak disarankan; gunakan emulators:start sebagai gantinya)firebase serve --only hosting | Menyajikan konten Hosting dan konfigurasi situs Hosting default di URL yang dihosting secara lokal |
(tidak disarankan; gunakan emulators:start sebagai gantinya)firebase serve --only hosting: TARGET_NAME | Menyajikan konten dan konfigurasi Hosting dari situs Hosting yang ditentukan di URL yang dihosting secara lokal |