Mengelola saluran live & pratinjau, rilis, dan versi situs Anda

Firebase Hosting menyediakan peralatan melalui Firebase console dan Firebase CLI untuk mengelola saluran, rilis, dan versi untuk situs Hosting Anda.

Ringkasan infrastruktur Hosting

Pemahaman tentang infrastruktur Hosting berguna untuk membantu Anda memahami opsi pengelolaan yang dijelaskan di halaman ini.

Setiap project Firebase memiliki situs Hosting default dengan akses ke semua resource project (database, autentikasi, fungsi, dll.). Setiap situs berisi satu atau beberapa saluran, dan setiap saluran dikaitkan dengan URL yang menyalurkan konten dan konfigurasi Hosting tertentu.

gambar hierarki Firebase Hosting

Setiap situs Hosting memiliki saluran "live" yang menyalurkan konten dan konfigurasi Hosting di (1) subdomain yang disediakan Firebase untuk situs tersebut (SITE_ID.web.app dan SITE_ID.firebaseapp.com) dan (2) domain kustom apa pun yang terhubung. Jika ingin, Anda juga dapat membuat saluran "pratinjau" yang menyalurkan konten dan konfigurasinya sendiri di "URL pratinjau" sementara yang dapat dibagikan (SITE_ID--CHANNEL_ID-RANDOM_HASH.web.app).

Konten dan konfigurasi yang disalurkan oleh setiap saluran dikemas ke dalam objek versi yang memiliki ID unik. Saat Anda melakukan deployment ke situs, Firebase akan membuat objek rilis yang mengarah ke versi tertentu. Rilis berisi metadata deployment, seperti siapa yang melakukannya dan kapan.

Dari dasbor Hosting project Firebase, Anda dapat melihat histori lengkap rilis saluran live dalam tabel Histori rilis. Jika Anda memiliki beberapa situs Hosting, klik Lihat untuk situs yang diinginkan guna melihat histori rilisnya. Jika Anda memiliki saluran pratinjau, saluran tersebut juga akan ditampilkan di dasbor Hosting.

Mengelola setelan saluran

Untuk setiap saluran situs, Anda dapat mengontrol setelannya. Beberapa setelan, seperti akhir masa berlaku saluran, hanya berlaku untuk saluran pratinjau.

Membatasi jumlah rilis yang disimpan

Setiap kali Anda melakukan deployment ke saluran (dan membuat rilis), Hosting menyimpan versi yang terkait dengan rilis sebelumnya dalam penyimpanan Hosting project Anda. Anda dapat menetapkan jumlah rilis yang akan disimpan untuk setiap saluran dalam project, baik saluran live maupun pratinjau.

  • Mengapa Hosting menyimpan rilis sebelumnya?
    Untuk saluran live, dengan menyimpan rilis sebelumnya, Anda akan dapat melakukan roll back ke versi situs sebelumnya, jika diperlukan. Untuk saluran pratinjau, roll back belum tersedia.

  • Mengapa jumlah rilis yang disimpan dibatasi?
    Fitur ini berguna untuk mengontrol tingkat penggunaan penyimpanan Hosting project, karena konten untuk rilis sebelumnya disimpan di penyimpanan ini. Anda dapat memantau penyimpanan Hosting dari tab Penyimpanan di konsol.

  • Apa yang terjadi jika Anda membatasi rilis yang disimpan?
    Jika Anda menetapkan batas jumlah rilis yang disimpan, konten dari rilis yang melebihi batas yang Anda tetapkan akan dijadwalkan untuk dihapus, dimulai dari rilis terlama.

Berikut ini cara menetapkan batas penyimpanan rilis untuk sebuah saluran:

  1. Di Firebase console, akses dialog setelan penyimpanan rilis:

    • Untuk saluran live
      Dalam tabel Histori Rilis untuk situs Anda, klik , lalu pilih Setelan penyimpanan rilis.

    • Untuk saluran pratinjau
      Pada baris untuk saluran pratinjau, klik , lalu pilih Setelan saluran.

  2. Masukkan jumlah rilis yang ingin Anda simpan, lalu klik Simpan.

Menetapkan akhir masa berlaku saluran pratinjau

Secara default, saluran pratinjau akan berakhir dalam 7 hari sejak tanggal pembuatan, tetapi saluran live situs Anda tidak memiliki akhir masa berlaku.

Saat saluran pratinjau mencapai akhir masa berlakunya, saluran tersebut, beserta rilis dan versi terkaitnya, akan dijadwalkan untuk dihapus dalam 24 jam. URL pratinjau yang terkait juga dinonaktifkan. Pengecualian untuk penghapusan versi ini adalah, jika sebuah versi dikaitkan dengan rilis lain (ini terjadi, misalnya, jika Anda meng-clone sebuah versi dari satu saluran ke saluran lainnya dalam situs yang sama).

Hosting mendukung dua cara berbeda untuk mengontrol akhir masa berlaku saluran:

  • Firebase console
    Pada baris untuk saluran pratinjau, klik , lalu pilih Setelan saluran. Masukkan tanggal dan waktu akhir masa berlaku.

  • Firebase CLI
    Saat Anda melakukan deployment ke saluran pratinjau, teruskan flag --expires DURATION, misalnya:

    firebase hosting:channel:deploy new-awesome-feature --expires 7d

    Akhir masa berlaku maksimal 30 hari sejak tanggal deployment. Gunakan h untuk jam, d untuk hari, dan w untuk minggu (misalnya 12h, 7d, 2w).

Meng-clone versi dari satu saluran ke saluran lainnya

Anda dapat meng-clone versi yang telah di-deploy dari satu saluran ke saluran yang lain. Anda dapat membuat clone lintas saluran live atau pratinjau, lintas situs Hosting, atau bahkan lintas project Firebase.

Perintah clone juga melakukan deployment ke saluran "target" sehingga konten dan konfigurasi Hosting yang di-clone akan otomatis disalurkan di URL terkait dari saluran "target" tersebut.

Fitur ini berguna untuk pelacakan versi, atau jika Anda ingin memastikan bahwa Anda men-deploy konten yang sama persis dengan yang Anda lihat dan/atau uji di saluran lain. Berikut beberapa contohnya:

  • Meng-clone dari saluran pratinjau "QA" ke saluran live situs Anda (ditayangkan)

  • Meng-clone dari saluran live situs Anda ke saluran pratinjau "debug" (seperti sebelum rollback)

  • Meng-clone dari saluran di project Firebase "staging" ke saluran pratinjau di project Firebase "prod"

Untuk meng-clone sebuah versi, jalankan perintah berikut dari direktori mana saja:

firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:TARGET_CHANNEL_ID

Ganti setiap placeholder dengan berikut ini:

  • SOURCE_SITE_ID dan TARGET_SITE_ID: Ini adalah ID situs Hosting yang berisi saluran.

    • Untuk situs Hosting default, gunakan project ID Firebase Anda.
    • Anda dapat menentukan situs Hosting yang ada di project Firebase yang sama atau bahkan di project Firebase berbeda.
  • SOURCE_CHANNEL_ID dan TARGET_CHANNEL_ID: Ini adalah ID saluran.

    • Untuk saluran live, gunakan live sebagai ID saluran.
    • Jika saluran "target" yang ditentukan belum ada, perintah ini akan membuat saluran sebelum melakukan deployment ke sana.

Melakukan roll back ke versi situs sebelumnya

Anda dapat melakukan roll back untuk menayangkan saluran live situs Anda versi sebelumnya. Tindakan ini berguna jika rilis saat ini memiliki masalah dan Anda ingin melakukan roll back untuk menayangkan versi situs yang sudah diketahui berfungsi sebagaimana mestinya. Atau, mungkin Anda ingin melakukan roll back untuk menayangkan konten "reguler" setelah sebelumnya situs Anda menayangkan konten yang bersifat sementara, seperti konten untuk hari libur atau acara khusus.

Dengan melakukan roll back, Anda membuat rilis baru yang menayangkan versi konten yang sama seperti rilis sebelumnya. Di tabel Histori rilis, kedua rilis akan mencantumkan ID versi yang sama.

Berikut cara melakukan roll back:

  1. Di Firebase console, dalam tabel Histori Rilis untuk situs Anda, arahkan kursor ke entri rilis sebelumnya yang menjadi tujuan roll back.

  2. Klik , lalu pilih Roll back.

Menghapus rilis secara manual

Anda mungkin perlu menghapus rilis dari saluran live secara manual untuk mengosongkan penyimpanan Hosting project Anda. Anda hanya dapat menghapus rilis sebelumnya, bukan rilis yang sedang ditayangkan di situs live.

Saat menghapus rilis, sebenarnya Anda menghapus kontennya, yang dijadwalkan untuk dihapus dalam 24 jam. Objek rilis itu sendiri disimpan, sehingga Anda masih dapat melihat metadatanya (siapa yang me-deploy objek tersebut dan kapan).

Berikut ini cara menghapus rilis:

  1. Di Firebase console, dalam tabel Histori Rilis untuk situs Anda, arahkan kursor ke entri rilis sebelumnya yang ingin dihapus.

  2. Klik , lalu pilih Hapus.

Menghapus saluran pratinjau secara manual

Anda dapat melihat pratinjau channel dengan mengklik channel yang ingin dilihat pratinjaunya. Dari tampilan ini, Anda dapat melihat, menghapus, dan mengembalikan deployment dan rilis terbaru yang terkait dengan saluran tertentu. Anda dapat menghapus saluran pratinjau, tetapi tidak dapat menghapus saluran live situs.

Saat Anda menghapus saluran pratinjau, saluran tersebut, beserta rilis dan versi terkaitnya, akan dijadwalkan untuk dihapus dalam 24 jam. URL pratinjau yang terkait juga dinonaktifkan. Pengecualian untuk penghapusan versi ini adalah jika sebuah versi dikaitkan dengan rilis lain (ini terjadi, misalnya, jika Anda meng-clone sebuah versi dari satu saluran ke saluran lainnya dalam situs yang sama).

Hosting mendukung dua cara berbeda untuk menghapus saluran pratinjau:

  • Firebase console
    Pada baris untuk saluran pratinjau, klik , lalu pilih Hapus saluran. Konfirmasi penghapusan.

  • Firebase CLI
    Jalankan perintah berikut dari direktori mana saja:

    firebase hosting:channel:delete CHANNEL_ID

Perintah CLI untuk saluran pratinjau dan cloning

Perintah untuk saluran pratinjau

Semua perintah untuk saluran pratinjau mendukung target deploy jika Anda memiliki beberapa situs Hosting.

Perintah Deskripsi
firebase hosting:channel:create CHANNEL_ID

Membuat saluran pratinjau baru di situs Hosting default menggunakan CHANNEL_ID yang ditentukan

Perintah ini tidak melakukan deployment ke saluran.

firebase hosting:channel:delete CHANNEL_ID

Menghapus saluran pratinjau yang ditentukan

Anda tidak dapat menghapus saluran live situs.

firebase hosting:channel:deploy CHANNEL_ID

Men-deploy konten dan konfigurasi Hosting ke saluran pratinjau yang ditentukan

Jika saluran pratinjau belum ada, perintah ini akan membuat saluran tersebut di situs Hosting default sebelum melakukan deployment ke sana.

firebase hosting:channel:list Mencantumkan semua saluran (termasuk saluran "live") di situs Hosting default
firebase hosting:channel:open CHANNEL_ID Membuka browser ke URL saluran yang ditentukan, atau menampilkan URL jika tidak dapat membuka saluran di browser

Perintah untuk cloning versi

Perintah Deskripsi
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Meng-clone versi yang terakhir di-deploy di saluran "sumber" yang ditentukan ke saluran "target" yang ditentukan

Perintah ini juga melakukan deployment ke saluran "target" yang ditentukan. Jika saluran "target" belum ada, perintah ini akan membuat saluran pratinjau baru di situs Hosting "target" sebelum melakukan deployment ke sana.

firebase hosting:clone \
SOURCE_SITE_ID:@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Meng-clone versi yang ditentukan ke saluran "target" yang ditentukan

Perintah ini juga melakukan deployment ke saluran "target" yang ditentukan. Jika saluran "target" belum ada, perintah ini akan membuat saluran pratinjau baru di situs Hosting "target" sebelum melakukan deployment ke sana.

Anda dapat menemukan VERSION_ID di dasbor Hosting Firebase console.