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

Firebase Hosting 透過 Firebase 控制台和 Firebase CLI 提供工具,用於管理 Hosting 網站的管道、版本和版本。

Hosting 基礎架構總覽

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

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

<span class=Firebase 代管階層" />

每個 Hosting 網站都有一個「live」頻道,可在 (1) 網站的 Firebase 佈建的子網域 (SITE_ID.web.appSITE_ID.firebaseapp.com) 和 (2) 任何已連結的自訂網域中提供內容和 Hosting 設定。您也可以選擇建立「預覽」管道,在可共用的臨時「預覽網址」(SITE_ID--CHANNEL_ID-RANDOM_HASH.web.app) 中提供自有內容和設定。

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

您可以在 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」預覽頻道複製至網站的直播頻道 (即將直播)

  • 從網站的線上管道複製至「偵錯」預覽管道 (例如在回溯之前)

  • 從「staging」Firebase 專案中的管道複製至「prod」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。
    • 您可以指定位於同一個 Firebase 專案,甚至位於不同 Firebase 專案的 Hosting 網站。
  • SOURCE_CHANNEL_IDTARGET_CHANNEL_ID:這是頻道的 ID。

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

還原至網站先前版本

你可以回溯至先前版本的網站直播頻道。如果目前的版本有問題,而您想回溯到已知可正常運作的網站版本,這項操作就很實用。或者,您的網站可能為假日或特別活動提供臨時內容,但現在您想回復提供「一般」內容。

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

以下說明如何回復:

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

  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

使用指定的 CHANNEL_ID預設 Hosting 網站中建立新的預覽頻道

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

firebase hosting:channel:delete CHANNEL_ID

刪除指定的預覽管道

你無法刪除網站的直播頻道。

firebase hosting:channel:deploy CHANNEL_ID

Hosting 內容和設定部署至指定的預覽頻道

如果預覽管道尚未建立,這個指令會先在預設 Hosting 網站中建立管道,再部署至管道。

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

用於複製版本的指令

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

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

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

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

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

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

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