Firebase托管可通过Firebase控制台和Firebase CLI提供工具,以管理托管站点的通道,发行版和版本。
托管基础架构概述
了解主机基础结构可以帮助您了解此页面上描述的管理选项。
每个Firebase项目都有一个默认的托管站点,可以访问该项目的所有资源(数据库,身份验证,功能等)。一个站点包含一个或多个通道,其中每个通道都与提供特定内容和托管配置的URL关联。
每个托管站点都有一个“实时”频道来提供内容,并在(1)该站点的Firebase设置的子域( SITE_ID .web.app
和SITE_ID .firebaseapp.com
)和(2)任何连接的自定义域上提供托管配置。您还可以选择创建“预览”渠道,以在临时的可共享“预览URL”( SITE_ID -- CHANNEL_ID - RANDOM_HASH .web.app
)中提供其自己的内容和配置。
每个通道提供的内容和配置都打包到具有唯一标识符的版本对象中。当您部署到站点时,Firebase会创建一个指向特定版本的发布对象。一个发行版包含有关部署的元数据,例如部署人员和部署时间。
从Firebase项目的“托管”仪表板中,您可以在“发行历史记录”表中查看实时频道发行的完整历史记录。如果您有多个托管站点,请单击“查看”以查看所需站点,以查看其发布历史记录。如果您有任何预览通道,它们也将显示在“主机”仪表板上。
管理频道的设置
对于您网站的每个频道,您都可以控制其设置。某些设置(例如,频道到期)仅适用于预览频道。
限制要保留的发行数量
每次部署到频道(并创建发行版)时,托管都会将与先前发行版关联的版本保留在项目的托管存储中。您可以为项目中的每个频道(实时和预览频道)设置要保留的发行数量。
托管为什么保留以前的版本?
对于您的直播频道,保留以前的版本使您可以在需要时回滚到站点的先前版本。对于您的预览频道,尚无法回滚。为什么要限制要保留的发行数量?
此功能可以帮助您控制项目的Hosting存储的使用级别,因为以前版本的内容都保存在该存储中。您可以从控制台的“ 存储”选项卡监视主机存储。当您限制发布的发布时会发生什么?
当您设置要保留的发布限制时,将从您最早的发布开始,计划删除超出设置限制的所有发布内容。
以下是设置频道的发布存储限制的方法:
在Firebase控制台中,访问发布存储设置对话框:
为您的直播频道
在您网站的发布历史记录表中,点击 ,然后选择发布存储设置。对于任何预览频道
在预览频道的行中,点击 ,然后选择频道设置。
输入您要保留的发行数量,然后点击保存。
设置预览频道的到期时间
默认情况下,预览频道从其创建日期起7天就会过期,但是您网站的实时频道永远不会过期。
预览频道到期时,该频道及其发行版本和相关版本计划在24小时内删除。关联的预览URL也被禁用。此版本删除的一个例外是,如果一个版本与另一个发行版相关联(例如,如果您将一个版本从一个频道克隆到同一站点中的另一个频道,则会发生这种情况)。
托管支持两种不同的方法来控制通道的到期:
Firebase控制台
在预览频道的行中,点击 ,然后选择频道设置。输入到期日期和时间。Firebase CLI
部署到预览频道时,请传递--expires DURATION
标志,例如:firebase hosting:channel:deploy new-awesome-feature --expires 7d
自部署之日起,有效期最多为30天。使用
h
代表小时,d
代表几天,w
代表星期(例如,分别为12h
,7d
,2w
)。
将一个版本从一个渠道克隆到另一个渠道
您可以将已部署的版本从一个通道克隆到另一个通道。您可以跨实时或预览频道,跨托管网站甚至跨Firebase项目进行克隆。
clone命令还将部署到“目标”通道,以便在“目标”通道的关联URL处自动提供克隆的主机内容和配置。
此功能对于版本跟踪很有用,或者在您确定要在其他频道上部署已查看和/或测试的确切内容时,该功能很有用。这里有些例子:
从“质量检查”预览频道克隆到您网站的实时频道(即将上线!)
从您网站的实时频道克隆到“调试”预览频道(如回滚之前)
从“ staging” Firebase项目中的频道克隆到“ prod” Firebase项目中的预览频道
要克隆版本,请从任何目录运行以下命令:
firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:TARGET_CHANNEL_ID
将每个占位符替换为以下内容:
SOURCE_SITE_ID和TARGET_SITE_ID :这些是包含通道的托管站点的ID。
- 对于您的默认托管网站,请使用您的Firebase项目ID。
- 您可以指定在同一Firebase项目中或什至在不同Firebase项目中的托管站点。
SOURCE_CHANNEL_ID和TARGET_CHANNEL_ID :这些是通道的标识符。
- 对于直播频道,请使用
live
作为频道ID。 - 如果指定的“目标”通道尚不存在,则此命令在部署到该通道之前先创建该通道。
- 对于直播频道,请使用
当您将同一版本的版本从一个通道克隆到同一托管站点中的另一个通道时,Firebase会创建一个指向完全相同版本的新发行对象。您将在托管站点中看到两个发行版,它们均指向同一版本(由版本ID标识)。
但是,如果将版本克隆到其他托管站点(或其他Firebase项目)中的频道,则Firebase会同时创建新发行版和新版本(由不同的版本ID标识)。
回滚到您的网站的先前版本
您可以回滚以提供站点实时频道的先前版本。如果您当前的发行版有问题,并且您想回滚以提供已知的网站工作版本,则此操作很有用。也许您的网站为节假日或特殊活动提供了临时内容,但现在您希望回滚以提供“常规”内容。
通过回滚,您可以创建一个新版本,该版本提供与先前版本相同的内容版本。在您的“发行历史记录”表中,两个发行版都将列出相同的版本标识符。
回滚的方法如下:
在Firebase控制台中,在您网站的“发行历史”表中,将鼠标悬停在要回滚到的先前发行条目上。
单击
,然后选择“回滚” 。
手动删除发布
您可能需要从直播频道中手动删除发行版,以释放项目的托管存储。您只能删除以前的版本,不能删除当前在您的实时站点上提供的版本。
删除发行版时,实际上是在删除其内容,该内容计划在24小时内删除。保留发布对象本身,以便您仍可以查看其元数据(部署人员和部署时间)。
删除版本的方法如下:
在Firebase控制台中,在您网站的“发行历史”表中,将鼠标悬停在要删除的先前发行条目上。
单击
,然后选择删除。
手动删除预览频道
您可以删除预览频道,但不能删除网站的直播频道。
删除预览频道时,该频道及其发行版本和相关版本计划在24小时内删除。关联的预览URL也被禁用。版本删除是一个例外,如果一个版本与另一个发行版相关联(例如,如果您将一个版本从一个频道克隆到同一站点中的另一个频道,则会发生这种情况)。
主机支持两种删除预览频道的方法:
Firebase控制台
在预览频道的行中,点击 ,然后选择删除频道。确认删除。Firebase CLI
从任何目录运行以下命令:firebase hosting:channel:delete CHANNEL_ID
用于预览通道和克隆的CLI命令
预览频道的命令
如果您有多个托管站点,则所有用于预览通道的命令都将支持部署目标。
命令 | 描述 |
---|---|
firebase hosting:channel:create 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 \ | 将指定“源”通道上的最新部署版本克隆到指定“目标”通道 此命令还将部署到指定的“目标”通道。如果“目标”通道尚不存在,则在部署到该通道之前,此命令将在“目标”托管站点中创建一个新的预览通道。 |
firebase hosting:clone \ | 将指定的版本克隆到指定的“目标”通道 此命令还将部署到指定的“目标”通道。如果“目标”通道尚不存在,则在部署到该通道之前,此命令将在“目标”托管站点中创建一个新的预览通道。 您可以在Firebase控制台的主机面板中找到 |