Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

管理您网站的实时和预览频道、发布和版本

Firebase 托管通过 Firebase 控制台和 Firebase CLI 提供工具来管理托管站点的渠道、版本和版本。

托管基础架构概述

了解托管基础架构可帮助您了解此页面上描述的管理选项。

每个火力地堡项目具有访问项目的所有资源(数据库,认证,功能等)默认的托管网站。 A位点包含一个或多个信道,其中每个信道与用于特定内容和主机构成的URL相关联。

Firebase 托管层次结构的图像

每一个托管的网站有一个“活”的频道,供应的内容,并在(1)该网站的火力地堡置备的子域名主机配置( SITE_ID .web.appSITE_ID .firebaseapp.com )和(2)任何连接的自定义域。您也可以选择创建“预览”的渠道,在临时的,可共享的“预览网址”为自己的内容和配置( SITE_ID -- CHANNEL_ID - RANDOM_HASH .web.app )。

通过每个信道提供服务的内容和配置被包装成一个版本对象具有唯一的标识符。当你部署到您的网站,火力地堡创建释放对象指向一个特定版本。发布包含有关部署的元数据,例如部署人员和部署时间。

从你的火力地堡计划的托管仪表板,你可以看到你的直播频道的发布版本的完整历史记录的发行历史表。如果你有多个托管网站,点击查看所希望的网站上看到它的发行历史。如果您有任何预览频道,它们也会显示在托管仪表板上。

管理频道的设置

对于站点的每个频道,您都可以控制其设置。某些设置(例如频道过期)仅适用于预览频道。

限制要保留的版本数

每次您部署到一个频道(并创建一个版本)时,Hosting 都会在您的项目的 Hosting 存储中保留与先前版本关联的版本。您可以设置发布的数量保持在您的项目,现场和预览通道每个通道

  • 为什么 Hosting 会保留以前的版本?
    为了您的直播频道,保持以前的版本中,您可以回滚到以前的版本,您的网站,如果需要的话。对于您的预览频道,回滚尚不可用。

  • 为什么要限制要保留的版本数?
    此功能可以帮助您控制您的使用级别项目的托管存储,作为以前的版本中的内容被保存在此存储。您可以监控从您的托管存储存储选项卡在控制台中。

  • 当您限制要保留的版本时会发生什么?
    当您设置的版本为了限制,任何版本的超过设定的限额内容预定要删除,从最古老的版本第一

以下是为频道设置发布存储限制的方法:

  1. 火力地堡控制台,获得释放存储的设置对话框:

    • 对于您的直播频道
      发布历史表为您的网站,点击 ,然后选择释放存储设置

    • 对于任何预览频道
      在该行的预览通道,点击 ,然后选择频道设置

  2. 输入您希望保留的版本数量,然后点击保存

设置预览频道的过期时间

默认情况下,预览频道自创建之日起 7 天后过期,但您网站的直播频道永远不会过期。

当预览频道到期时,该频道及其发行版和相关版本计划在 24 小时内删除。关联的预览 URL 也被停用。这个版本删除一个例外是,如果一个版本与另一版本相关的(这种情况发生,例如,如果你克隆从一个通道同一站点中的一个版本到另一个)。

Hosting 支持两种不同的方式来控制频道的过期时间:

  • Firebase 控制台
    在该行的预览通道,点击 ,然后选择频道设置。输入到期日期和时间。

  • Firebase 命令行界面
    当你部署到预览通道,通过--expires DURATION标志,例如:

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

    自部署之日起最长可达 30 天。使用h数小时, d为天,和w数周(例如, 12h7d2w ,分别地)。

将一个版本从一个频道克隆到另一个频道

您可以将已部署的版本从一个频道克隆到另一个频道。您可以跨实时或预览频道、跨托管站点甚至跨 Firebase 项目进行克隆。

克隆命令也将部署到“目标”渠道,使克隆托管内容和配置在“目标”频道的相关网址自动服务。

此功能对于版本跟踪有用,或者如果你想确信你部署你查看和/或测试另一个通道上的确切内容。这里有些例子:

  • 从“QA”预览频道克隆到您网站的直播频道(上线!)

  • 从您网站的实时频道克隆到“调试”预览频道(就像在回滚之前一样)

  • 从“暂存”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 :这些是渠道identifers。

    • 对于直播频道,使用live的信道ID。
    • 如果指定的“目标”通道尚不存在,则此命令会在部署之前创建通道。

回滚到您网站的先前版本

您可以回滚以提供您网站直播频道的先前版本。如果您的当前版本有问题并且您想要回滚以提供站点的已知工作版本,则此操作非常有用。或者,您的网站可能为假期或特殊活动提供临时内容,但现在您想回滚以提供“常规”内容。

通过回滚,您可以创建一个新版本,该版本提供与先前版本相同的内容版本。在您的发行历史表,这两个版本会列出相同的版本标识符。

以下是回滚的方法:

  1. 火力地堡控制台,在发行历史记录表为您的网站,将鼠标悬停在以前的版本项,您希望回滚到。

  2. 点击 ,然后选择回滚

手动删除发布

您可能需要从您的直播频道手动删除释放,以释放托管存储为您的项目。您只能删除以前的版本,而不能删除当前在您的实时站点上提供的版本。

当您删除一个版本时,您实际上是在删除它的内容,这些内容计划在 24 小时内删除。保留发布对象本身,以便您仍然可以看到它的元数据(部署的人和部署时间)。

以下是删除版本的方法:

  1. 火力地堡控制台,在发行历史记录表为您的网站,将鼠标悬停在要删除以前的版本条目。

  2. 点击 ,然后选择删除

手动删除预览频道

您可以删除预览频道,但不能删除您网站的直播频道。

当您删除预览频道时,该频道及其发行版和相关版本将安排在 24 小时内删除。关联的预览 URL 也被停用。该版本删除一个例外是,如果一个版本与另一版本相关的(这种情况发生,例如,如果你克隆从一个通道同一站点中的一个版本到另一个)。

Hosting 支持两种不同的方式来删除预览频道:

  • Firebase 控制台
    在该行的预览通道,点击 ,然后选择删除频道。确认删除。

  • 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

将指定版本克隆到指定的“目标”通道

此命令还会部署到指定的“目标”通道。如果“目标”频道尚不存在,此命令会在部署到该频道之前在“目标”托管站点中创建一个新的预览频道。

你可以找到VERSION_ID托管仪表板的火力地堡控制台。