管理網站的現存頻道和版本;預覽網站的頻道、發布版本和版本

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

託管基礎架構總覽

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

每個 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 控制台
    在預覽管道的資料列中,按一下 ,然後選取「管道設定」。輸入到期的日期和時間。

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

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

    到期日從部署日期起最多需要 30 天。使用 h 表示小時,d 代表星期幾,w 代表週 (例如 12h7d2w)。

將版本從某個版本複製到另一個版本

您可以將已部署的版本從某個版本複製到其他版本。您可以在使用中或預覽管道、各個託管網站,甚至是各項 Firebase 專案中複製資料。

本機複製指令也會將部署至「目標」管道,讓系統將複製的託管內容和設定自動提供給「目標」管道的相關網址。

這項功能適用於版本追蹤,或是您想要確保自己部署的是已確切部署過且/或在其他管道上測試的內容。例如:

  • 從「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:這些是包含管道的代管網站 ID。

    • 使用 Firebase 專案 ID 做為預設託管網站。
    • 您可以指定位於同一個 Firebase 專案或不同 Firebase 專案的託管網站。
  • SOURCE_CHANNEL_IDTARGET_CHANNEL_ID:這些是管道的 ID。

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

將網站復原為前一個版本

你可以復原為先前的網站即時頻道。如果目前的版本有問題,而且您想復原為提供已知可正常運作的網站版本,這種做法就非常實用。或者,您的網站可能針對節慶或特殊活動提供暫時內容,但現在又想復原為「一般」內容。

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

復原的步驟如下:

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

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

手動刪除版本

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

刪除版本時,您實際上會刪除其內容,而系統預定在 24 小時內刪除該版本。發布物件本身會保留,因此您仍可查看其中繼資料 (部署人員和部署時間)。

刪除版本的方法如下:

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

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

手動刪除檔案

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

手動刪除預覽管道

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

當您刪除預覽管道時,系統會安排在 24 小時內刪除該預覽版本,以及該頻道及其相關版本。相關的預覽網址也會停用。版本刪除的例外情況是某個版本與其他版本相關聯 (例如,如果您將某個版本從某個版本複製到「位於同一個網站」的另一個版本)。

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

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

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

    firebase hosting:channel:delete CHANNEL_ID

用於預覽管道和複製的 CLI 指令

預覽管道的指令

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

指令 說明
firebase hosting:channel:create CHANNEL_ID

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

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

firebase hosting:channel:delete CHANNEL_ID

刪除指定的預覽管道

您無法刪除網站的實際頻道。

firebase hosting:channel:deploy CHANNEL_ID

將「託管」內容和設定部署至指定的預覽管道

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

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

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

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

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

將指定版本複製到指定的「target」版本

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

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