Catch up on highlights from Firebase at Google I/O 2023. Learn more

管理您網站的實時和預覽頻道、版本和版本

Firebase 託管通過 Firebase 控制台和 Firebase CLI 提供工具來管理託管站點的頻道、發布和版本。

託管基礎架構概述

了解託管基礎設施有助於您了解本頁描述的管理選項。

每個 Firebase 項目都有一個默認的託管站點,可以訪問所有項目的資源(數據庫、身份驗證、功能等)。一個網站包含一個或多個頻道,其中每個頻道都與一個提供特定內容的 URL 和一個託管配置相關聯。

Firebase 託管層次結構的圖片

每個託管站點都有一個“實時”頻道,用於在 (1) 站點的 Firebase 提供的子域( SITE_ID .web.appSITE_ID .firebaseapp.com )和 (2) 任何連接的自定義​​域中提供內容和託管配置。您還可以選擇創建“預覽”頻道,這些頻道在臨時的、可共享的“預覽 URL”( SITE_ID -- CHANNEL_ID - RANDOM_HASH .web.app )中提供自己的內容和配置。

每個通道提供的內容和配置都被打包到一個具有唯一標識符的版本對像中。當您部署到您的網站時,Firebase 會創建一個指向特定版本的發布對象。發布包含有關部署的元數據,例如部署人員和部署時間。

在您的 Firebase 項目的託管儀表板中,您可以在發布歷史記錄表中查看直播頻道發布的完整歷史記錄。如果您有多個託管站點,請單擊所需站點的查看以查看其發布歷史記錄。如果您有任何預覽頻道,它們也會顯示在託管儀表板上。

管理頻道的設置

對於站點的每個頻道,您都可以控制其設置。某些設置(如頻道過期)僅適用於預覽頻道。

限制要保留的版本數量

每次您部署到一個頻道(並創建一個版本)時,Hosting 都會在您的項目的 Hosting 存儲中保留與先前版本關聯的版本。您可以為項目中的每個頻道(實時頻道和預覽頻道)設置要保留的發布數量。

  • 為什麼 Hosting 保留以前的版本?
    對於您的實時頻道,保留以前的版本使您能夠在需要時回滾到您網站的以前版本。對於您的預覽頻道,回滾尚不可用。

  • 為什麼要限制要保留的版本數量?
    此功能可以幫助您控制項目託管存儲的使用級別,因為以前版本的內容保留在此存儲中。您可以從控制台的存儲”選項卡監控您的託管存儲。

  • 當您限制要保留的版本時會發生什麼?
    當您設置要保留的版本限制時,任何超過您設置限制的版本的內容都將被刪除,從最舊的版本開始

以下是設置頻道的發布存儲限制的方法:

  1. Firebase 控制台中,訪問發布存儲設置對話框:

    • 對於您的直播頻道
      在站點的Release History表中,單擊 ,然後選擇Release storage settings

    • 對於任何預覽通道
      在預覽頻道所在的行中,單擊 ,然後選擇Channel settings

  2. 輸入您要保留的版本數,然後點擊保存

設置預覽通道的到期時間

默認情況下,預覽頻道會在其創建日期後 7 天過期,但您網站的直播頻道永遠不會過期。

當預覽頻道過期時,該頻道及其發行版和關聯版本將在 24 小時內刪除。關聯的預覽 URL 也被停用。此版本刪除的一個例外是版本與另一個版本相關聯(例如,如果您將版本從一個頻道克隆到同一站點中的另一個頻道,就會發生這種情況)。

Hosting 支持兩種不同的方式來控制通道的過期時間:

  • Firebase 控制台
    在預覽頻道所在的行中,單擊 ,然後選擇Channel settings 。輸入到期日期和時間。

  • 火力地堡命令行
    當您部署到預覽通道時,傳遞--expires DURATION標誌,例如:

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

    自部署之日起最長可過期 30 天。使用h表示小時, d表示天, w表示週(例如,分別為12h7d2w )。

將一個版本從一個頻道克隆到另一個頻道

您可以將部署的版本從一個渠道克隆到另一個渠道。您可以跨直播或預覽頻道、跨託管站點甚至跨 Firebase 項目進行克隆。

克隆命令還會部署到“目標”通道,以便克隆的託管內容和配置自動在“目標”通道的關聯 URL 上提供。

此功能對於版本跟踪非常有用,或者如果您希望確信您部署的內容與您在其他頻道上查看和/或測試過的內容完全相同。這裡有些例子:

  • 從“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 :這些是頻道的標識符。

    • 對於直播頻道,使用live作為頻道 ID。
    • 如果指定的“目標”通道尚不存在,此命令會在部署之前創建通道。

回滾到您網站的先前版本

您可以回滾以提供網站直播頻​​道的先前版本。如果您的當前版本有問題並且您想要回滾以提供站點的已知工作版本,則此操作很有用。或者您的網站可能為假期或特殊活動提供臨時內容,但現在您想回滾以提供您的“常規”內容。

通過回滾,您可以創建一個新版本,該版本提供與先前版本相同的內容版本。在您的版本歷史記錄表中,兩個版本都將列出相同的版本標識符。

回滾的方法如下:

  1. Firebase 控制台中,在您網站的發布歷史記錄表中,將鼠標懸停在您要回滾到的上一個發布條目上。

  2. 單擊 ,然後選擇回滾

手動刪除版本

您可能需要從實時頻道中手動刪除一個版本,以釋放項目的託管存儲空間。您只能刪除以前的版本,不能刪除當前在您的實時站點上提供的版本。

當您刪除一個版本時,您實際上是在刪除其計劃在 24 小時內刪除的內容。保留發布對象本身,以便您仍然可以看到它的元數據(部署人員和部署時間)。

以下是刪除版本的方法:

  1. Firebase 控制台中,在您網站的發布歷史記錄表中,將鼠標懸停在您要刪除的先前發布條目上。

  2. 單擊 ,然後選擇刪除

手動刪除預覽頻道

您可以刪除預覽頻道,但不能刪除您網站的直播頻道。

當您刪除預覽頻道時,該頻道及其發行版和關聯版本將計劃在 24 小時內刪除。關聯的預覽 URL 也被停用。版本刪除的一個例外是版本與另一個版本相關聯(例如,如果您將版本從同一站點的一個頻道克隆到另一個頻道,就會發生這種情況)。

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

  • Firebase 控制台
    在預覽頻道所在的行中,單擊 ,然後選擇刪除頻道。確認刪除。

  • 火力地堡命令行
    從任何目錄運行以下命令:

    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列出默認託管站點中的所有頻道(包括“實時”頻道)
firebase hosting:channel:open CHANNEL_ID將瀏覽器打開到指定頻道的 URL,如果無法在瀏覽器中打開,則返回 URL

版本克隆命令

命令描述
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