管理上線的版本(&A);預覽版本、版本和網站版本

Firebase Hosting 提供 Firebase 控制台和 Firebase CLI 工具,方便您管理 Hosting 網站的管道、發布內容和版本。

Hosting 基礎架構總覽

瞭解 Hosting 基礎架構有助於瞭解本頁面所述的管理選項。

每個 Firebase 專案都有預設Hosting 網站,可存取專案的所有資源 (資料庫、驗證、函式等)。一個網站包含一或多個頻道,每個頻道都與提供特定內容的網址和 Hosting 設定相關聯。

<span class=Firebase Hosting hierarchy" />

每個 Hosting 網站都有一個「即時」管道,用於提供內容,以及位於 (1) 網站的 Firebase 佈建子網域 (SITE_ID.web.appSITE_ID.firebaseapp.com) 和 (2) 任何已連線自訂網域Hosting 設定。您也可以選擇建立「預覽」管道,透過臨時的「預覽網址」(SITE_ID--CHANNEL_ID-RANDOM_HASH.web.app) 提供自己的內容和設定,並與他人共用。

每個管道提供的內容和設定都會封裝成具有專屬 ID 的版本物件。部署至網站時,Firebase 會建立指向特定版本的「版本」物件。版本包含部署作業的中繼資料,例如部署者和部署時間。

在 Firebase 專案的Hosting資訊主頁中,您可以在「發布記錄」表格中查看即時頻道的所有發布記錄。如果有多個網站Hosting,請按一下所需網站的「查看」,即可查看發布記錄。如有任何預覽版頻道,也會顯示在Hosting資訊主頁。

管理頻道的設定

您可以控管網站各個管道的設定。部分設定 (例如管道到期) 僅適用於預覽管道。

限制要保留的版本數量

每次部署至管道 (並建立版本) 時,Hosting 都會將與先前版本相關聯的版本保留在專案的 Hosting 儲存空間中。您可以在專案中為每個管道設定要保留的發行內容數量,包括正式和預覽管道。

  • 為什麼 Hosting 會保留舊版本?
    對於正式版頻道,保留先前版本可讓您在需要時還原至網站的先前版本。預覽版頻道目前不支援回溯。

  • 為什麼要限制保留的版本數量?
    這項功能可協助控管專案Hosting儲存空間的使用量,因為先前版本的內容會保留在這個儲存空間中。您可以在控制台的「儲存空間」分頁中監控儲存空間Hosting

  • 如果限制保留的發行內容數量,會發生什麼事?
    設定要保留的版本數量上限後,系統會安排刪除超出上限的所有版本內容,並優先刪除最舊的版本

如要為頻道設定發布儲存空間上限,請按照下列步驟操作:

  1. Firebase 控制台中,存取發布儲存空間設定對話方塊:

    • 直播頻道
      在網站的「發布記錄」表格中,按一下 ,然後選取「發布儲存空間設定」

    • 任何預先發布版管道
      在預先發布版管道的資料列中,按一下 ,然後選取「管道設定」

  2. 輸入要保留的發行內容數量,然後按一下「儲存」

設定預覽版頻道的到期日

預先發布版管道預設會在建立日期起算的 7 天後失效,但網站的正式發布版管道永遠不會失效。

預覽管道到期後,系統會排定在 24 小時內刪除該管道、當中的發布版本與相關聯的版本,相關聯的預覽網址也會一併停用。如果版本與其他發布內容相關聯 (例如,您在同一個網站中,將某個管道的版本複製到另一個管道),則不適用於版本刪除規定。

Hosting 支援兩種不同的管道到期控制方式:

  • Firebase 控制台
    在預覽版管道的列中,按一下 ,然後選取「管道設定」。輸入到期日期和時間。

  • Firebase CLI
    部署至預先發布管道時,請傳遞 --expires DURATION 標記,例如:

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

    到期日最晚可設為部署日期後 30 天。使用 h 代表小時、d 代表天數,以及 w 代表週數 (例如 12h7d2w)。

將版本從一個管道複製到另一個管道

您可以將已部署的版本從一個管道複製到另一個管道。您可以複製即時或預覽管道、Hosting網站,甚至是 Firebase 專案。

複製指令也會部署至「目標」管道,因此系統會自動在「目標」管道的相關聯網址提供複製的 Hosting 內容和設定。

這項功能有助於追蹤版本,或確保您部署的內容完全與在其他管道中查看和/或測試的內容一致。例如:

  • 從「QA」預覽管道複製到網站的正式管道 (上線!)

  • 從網站的正式版管道複製到「偵錯」預覽管道 (例如在回溯前)

  • 從「測試」Firebase 專案中的管道複製到「正式」Firebase 專案中的預覽管道

如要複製版本,請從任何目錄執行下列指令:

firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:TARGET_CHANNEL_ID

將每個預留位置替換為下列項目:

  • SOURCE_SITE_IDTARGET_SITE_ID:這些是包含頻道的Hosting網站 ID。

    • 如果是預設的 Hosting 網站,請使用 Firebase 專案 ID。
    • 您可以指定Hosting同一個 Firebase 專案中的網站,甚至是不同 Firebase 專案中的網站。
  • SOURCE_CHANNEL_IDTARGET_CHANNEL_ID:這些是頻道的 ID。

    • 如果是直播頻道,請使用 live 做為頻道 ID。
    • 如果指定的「目標」管道尚不存在,這個指令會先建立管道,再部署至該管道。

還原網站的先前版本

您可以復原,放送網站即時頻道的先前版本。如果目前發布的版本有問題,且您想回溯至已知可正常運作的網站版本,這項操作就非常實用。或者,您的網站可能在節慶或特別活動期間提供臨時內容,但現在想還原為「一般」內容。

復原後,您會建立新版本,提供與先前版本相同的內容。在「發布記錄」表格中,這兩個版本都會列出相同的版本 ID。

如要還原,請按照下列步驟操作:

  1. Firebase 控制台中,將滑鼠游標懸停在網站的「Release History」(發布記錄) 表格中,要還原的先前版本項目上。

  2. 按一下 ,然後選取「還原」

手動刪除版本

你可能需要手動從即時頻道刪除發行內容,才能為專案釋出Hosting儲存空間。你只能刪除先前的版本,無法刪除目前在網站上發布的版本。

刪除發行內容時,系統會安排在 24 小時內刪除內容。系統會保留發布物件本身,因此您仍可查看其後設資料 (部署者和部署時間)。

以下說明如何刪除發行內容:

  1. Firebase控制台中,將滑鼠游標懸停在網站的「發布記錄」表格中,要刪除的先前版本項目上。

  2. 按一下 ,然後選取「刪除」

手動刪除檔案

Firebase Hosting 中,從已部署的網站刪除所選檔案的主要方式,是先在本機刪除檔案,然後重新部署。

手動刪除預覽頻道

按一下要預覽的頻道,即可預覽頻道。 在這個檢視畫面中,您可以查看、刪除及還原與特定管道相關的最新部署和發布內容。你可以刪除預覽版頻道,但無法刪除網站的正式版頻道。

刪除預覽頻道後,系統會排定在 24 小時內刪除該頻道、當中的發布版本與相關聯的版本,相關聯的預覽網址也會一併停用。如果版本與其他發布內容相關聯 (例如,您在同一個網站內,將一個管道的版本複製到另一個管道),則不適用版本刪除規定。

Hosting 支援兩種不同的預覽版頻道刪除方式:

  • Firebase 控制台
    在預覽管道的資料列中,按一下 ,然後選取「刪除管道」。確認刪除。

  • Firebase CLI
    在任何目錄中執行下列指令:

    firebase hosting:channel:delete CHANNEL_ID

預覽管道和複製的 CLI 指令

預覽管道的指令

如果您有多個 Hosting 網站,預覽版頻道的所有指令都支援部署目標。

指令 說明
firebase hosting:channel:create CHANNEL_ID

預設 Hosting 網站中,使用指定的 CHANNEL_ID

這個指令不會部署至管道。

firebase hosting:channel:delete CHANNEL_ID

刪除指定的預覽版頻道

你無法刪除網站的即時頻道。

firebase hosting:channel:deploy CHANNEL_ID

Hosting 內容和設定部署至指定的預先發布版管道

如果預覽管道尚不存在,這個指令會在 default Hosting 網站中建立管道,然後再部署至該管道。

firebase hosting:channel:list 列出 default Hosting 網站中的所有頻道 (包括「live」頻道)。
firebase hosting:channel:open CHANNEL_ID 開啟瀏覽器並前往指定頻道的網址,或在無法開啟瀏覽器時傳回網址

複製版本的指令

指令 說明
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

將指定「來源」管道上最近部署的版本,複製到指定「目標」管道

這個指令也會部署至指定的「目標」管道。如果「target」管道尚不存在,這項指令會在「target」Hosting 網站中建立新的預覽管道,然後部署至該管道。

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

將指定版本複製到指定「目標」管道

這個指令也會部署至指定的「目標」管道。如果「target」管道尚不存在,這項指令會在「target」Hosting 網站中建立新的預覽管道,然後部署至該管道。

您可以在 Firebase 控制台的Hosting 資訊主頁中找到 VERSION_ID