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

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

Hosting 基礎架構總覽

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

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

Firebase 託管階層的圖片

每個 Hosting 網站都有一個「正式」管道,用於提供內容和 Hosting 設定,位置分別是 (1) 網站的 Firebase 佈建子網域 (SITE_ID.web.app 和 SITE_ID.firebaseapp.com),以及 (2) 所有已連結的自訂網域。您也可以選擇建立「預覽」頻道,在可分享的臨時「預覽網址」(SITE_ID--CHANNEL_ID-RANDOM_HASH.web.app) 提供專屬內容和設定。

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

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

管理頻道的設定

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

限制要保留的版本數量

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

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

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

  • 限制保留的發行內容數量會有什麼影響?
    設定要保留的版本數量上限後,系統會排定刪除超過上限的版本內容,並從最舊的版本開始刪除。

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

  1. 在 Firebase 控制台中,依序前往「Hosting & Serverless」(主機代管與無伺服器) >「Hosting」(主機代管),存取版本儲存空間設定對話方塊:

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

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

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

設定預覽版頻道的到期日

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

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

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

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

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

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

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

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

您可以將已發布的版本從一個管道複製到另一個管道。您可以跨正式版或預先發布版、跨 Hosting 網站,甚至是跨 Firebase 專案複製。

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

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

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

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

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

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

firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:TARGET_CHANNEL_ID

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

  • SOURCE_SITE_ID 和 TARGET_SITE_ID:這些是含有頻道的Hosting網站 ID。

    • 如果是預設 Hosting 網站,請使用 Firebase 專案 ID。
    • 您可以指定Hosting位於相同或不同 Firebase 專案中的網站。
  • SOURCE_CHANNEL_ID 和 TARGET_CHANNEL_ID:這些是頻道的 ID。

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

復原至網站的先前版本

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

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

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

  1. 在 Firebase 控制台中,依序前往「Hosting & Serverless」(託管與無伺服器) >「Hosting」(託管)。

  2. 在網站的「發布記錄」表格中,將滑鼠游標懸停在要還原的先前版本上。

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

手動刪除版本

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

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

如要刪除發行內容,請按照下列步驟操作:

  1. 在 Firebase 控制台中,依序前往「Hosting & Serverless」(託管與無伺服器) >「Hosting」(託管)。

  2. 在網站的「發布記錄」表格中,將游標懸停在要刪除的先前發布項目上。

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

手動刪除檔案

在 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 內容和設定部署至指定的預先發布版管道

如果預覽版管道尚不存在,這個指令會在部署至管道前,於預設 Hosting 網站中建立管道。

firebase hosting:channel:list 列出預設 Hosting 網站中的所有頻道 (包括「即時」頻道)。
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。