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

Firebase 託管透過 Firebase 控制台和 Firebase CLI 提供工具,以便管理託管網站的管道、版本和版本。

託管基礎架構總覽

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

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

Firebase 託管階層的圖片

每個託管網站都有一個「現行」管道,可在 (1) 由網站 Firebase 佈建的子網域 (SITE_ID.web.appSITE_ID.firebaseapp.com) 和 (2) 任何已連結的自訂網域提供內容和主機設定。您也可以選擇建立「預覽」管道,在暫時的「預覽網址」(SITE_ID--CHANNEL_ID-RANDOM_HASH.web.app) 提供專屬的內容和設定。

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

在 Firebase 專案的「託管資訊主頁」中,您可以在「版本記錄」表格中查看使用中版本的完整記錄。如果您有多個代管網站,請按一下目標網站的「View」查看其版本記錄。如果您擁有任何預覽管道,這些管道也會顯示在託管資訊主頁中。

管理頻道設定

您可以在網站的各個頻道中控制其設定。部分設定 (例如頻道到期日) 僅適用於預覽版本。

限制要保留的版本數量

每當您部署至管道 (並建立新版本) 時,託管功能都會在專案的託管儲存空間中保留與先前版本相關聯的版本。您可以設定專案中「每個版本」要保留的版本數量,包括使用中和預覽版。

  • 為何「託管」保留先前的版本?
    針對直播頻道,保留先前的版本可讓您視需要復原至先前的網站版本。預覽版本尚未提供復原功能。

  • 為什麼要限制要保留的版本數量?
    這項功能可協助您控管專案代管儲存空間的用量程度,因為先前版本的內容會保留在這個儲存空間中。您可以透過控制台的「Storage」(儲存空間) 分頁標籤監控託管儲存空間。

  • 如果您限制要保留的版本,會有什麼影響?
    如果您設定了要保留的版本限制,則系統會安排刪除超過您設定的限製版本的內容,由時間從最舊的版本開始

以下說明如何設定版本的儲存空間上限:

  1. Firebase 主控台中,存取版本儲存空間設定對話方塊:

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

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

  2. 輸入您要保留的版本數量,然後按一下「儲存」

設定預覽版本的到期時間

根據預設,預覽管道會在建立當天算起 7 天後到期,但網站的上線頻道永遠不會過期。

預覽版本到期後,系統會安排在 24 小時內刪除管道、其版本和相關版本。而相關的預覽網址也會停用。但這個版本刪除作業的例外情況是,某個版本與其他版本相關聯 (舉例來說,假如您將某個版本從一個版本複製到另一個版本,就會是同一網站內的)。

託管支援兩種控制頻道到期日的方式:

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

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

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

    到期日可自部署日期起最多 30 天。使用 h 代表小時,d 表示天,w 則使用週 (例如 12h7d2w)。

複製某個版本中的某個版本

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

複製指令也會在「目標」管道部署至「目標」管道,以便在「目標」管道的關聯網址上自動提供複製的代管內容和設定。

此功能非常適合用於追蹤版本,或確保部署的是您在其他管道上檢視和/或測試的「確切」內容。例如:

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

  • 從網站的即時管道複製到「偵錯」預覽管道 (例如復原前)

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

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

firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:TARGET_CHANNEL_ID

將每個預留位置替換為以下內容:

  • SOURCE_SITE_IDTARGET_SITE_ID:這些是包含管道的代管網站的 ID。

    • 如果選取「託管」網站,請使用 Firebase 專案 ID。
    • 您可以指定位於同一個 Firebase 專案或不同 Firebase 專案中的託管網站。
  • SOURCE_CHANNEL_IDTARGET_CHANNEL_ID:這些是管道的 ID。

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

將網站復原為前一個版本

復原為前一個版本的網站直播頻道。如果現行版本發生問題,而您想復原為網站已知可運作的版本,這個選項就非常實用。或者,您的網站仍可能為節慶或特殊活動提供暫時性內容,但現在您想要復原,改為放送「一般」內容。

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

復原的步驟如下:

  1. Firebase 控制台的「版本記錄」表格中,將滑鼠遊標懸停在您要復原的先前版本項目上。

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

手動刪除版本

您可能需要手動刪除線上版本中的版本,才能釋出專案的託管儲存空間。您只能刪除先前的版本,而無法刪除目前網站上提供的版本。

刪除版本時,您實際上會刪除其內容,且已排定於 24 小時內刪除。版本物件本身會保留,因此您仍然可以查看中繼資料 (部署的人員和部署時間)。

刪除版本的方法如下:

  1. Firebase 控制台的「版本記錄」表格中,將遊標懸停在要刪除的先前版本項目上。

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

手動刪除檔案

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

手動刪除預覽頻道

按一下要預覽的頻道,即可預覽頻道。 在這個檢視畫面中,您可以查看、刪除及還原與特定管道相關聯的最新部署與發布版本。您可以刪除預覽頻道,但不能刪除網站的上線頻道。

如果刪除預覽版本,系統已排定在 24 小時內刪除該版本,以及其版本和相關版本。而相關的預覽網址也會停用。版本刪除功能的例外情況是,某個版本與其他版本相關聯 (舉例來說,假如您將某個版本從一個版本複製到另一個版本,就會是同一網站內的)。

代管支援兩種刪除預覽頻道的方式:

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

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

    firebase hosting:channel:delete CHANNEL_ID

預覽版本與複製的 CLI 指令

預覽版本的指令

如果您有多個託管網站,則所有預覽版本的指令都支援部署目標。

指令 說明
firebase hosting:channel:create CHANNEL_ID

使用指定的 CHANNEL_IDdefault 託管網站上建立新的預覽管道

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

firebase hosting:channel:delete CHANNEL_ID

刪除指定預覽管道

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

firebase hosting:channel:deploy CHANNEL_ID

將託管內容與設定部署至指定的預覽管道

如果預先發布版尚不存在,這個指令會在部署至管道前,先在 default 託管網站上建立管道。

firebase hosting:channel:list 列出 default 託管網站中的所有頻道 (包括「直播」頻道)
firebase hosting:channel:open CHANNEL_ID 開啟瀏覽器前往指定頻道的網址;如果無法在瀏覽器中開啟,則傳回網址

版本複製功能的指令

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

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

這個指令也會部署至指定的「目標」管道。如果「目標」管道尚不存在,這個指令會在部署至管道前,於「目標」託管網站建立新的預覽管道。

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

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

這個指令也會部署至指定的「目標」管道。如果「目標」管道尚不存在,這個指令會在部署至管道前,於「目標」託管網站建立新的預覽管道。

您可以在 Firebase 控制台的「託管」資訊主頁中找到 VERSION_ID