Google 致力于为黑人社区推动种族平等。查看具体举措
此页面由 Cloud Translation API 翻译。
Switch to English

管理网站的实时和预览频道,发行版和版本

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存储的使用级别,因为以前版本的内容都保存在该存储中。您可以从控制台的“ 存储”选项卡监视主机存储。

  • 当您限制发布的发布时会发生什么?
    当您设置要保留的发布限制时,将从您最早的发布开始,计划删除超出设置限制的所有发布内容。

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

  1. Firebase控制台中,访问发布存储设置对话框:

    • 为您的直播频道
      在您网站的发布历史记录表中,点击 ,然后选择发布存储设置

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

  2. 输入您要保留的发行数量,然后点击保存

设置预览频道的到期时间

默认情况下,预览频道从其创建日期起7天就会过期,但是您网站的实时频道永远不会过期。

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

托管支持两种不同的方法来控制通道的到期:

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

  • Firebase CLI
    部署到预览频道时,请传递--expires DURATION标志,例如:

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

    自部署之日起,有效期最多为30天。使用h代表小时, d代表几天, w代表星期(例如,分别为12h7d2w )。

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

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

clone命令还将部署到“目标”通道,以便在“目标”通道的关联URL处自动提供克隆的主机内容和配置。

此功能对于版本跟踪很有用,或者在您确定要在其他频道上部署已查看和/或测试的确切内容时,该功能很有用。这里有些例子:

  • 从“质量检查”预览频道克隆到您网站的实时频道(即将上线!)

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

  • 从“ 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也被禁用。版本删除是一个例外,如果一个版本与另一个发行版相关联(例如,如果您将一个版本从一个频道克隆到同一站点中的另一个频道,则会发生这种情况)。

主机支持两种删除预览频道的方法:

  • 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列出默认托管站点中的所有频道(包括“实时”频道)
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