Firebase Hosting предоставляет инструменты для управления каналами, релизами и версиями вашего Hosting сайта как через консоль Firebase , так и через Firebase CLI.
Обзор инфраструктуры Hosting
Понимание инфраструктуры Hosting поможет вам разобраться в вариантах управления, описанных на этой странице.
Every Firebase project has a default Hosting site with access to all the project's resources (databases, authentication, functions, etc.). A site contains one or more channels , where each channel is associated with a URL that serves specific content and a Hosting configuration.
Иерархия хостинга Firebase" />
Every Hosting site has a "live" channel that serves content and a Hosting config at (1) the site's Firebase-provisioned subdomains ( SITE_ID .web.app and SITE_ID .firebaseapp.com ) and (2) any connected custom domains . You can also optionally create "preview" channels that serve their own content and configuration at temporary, sharable "preview URLs" (SITE_ID -- CHANNEL_ID - RANDOM_HASH .web.app ).
The content and configuration served by each channel is packaged into a version object that has a unique identifier. When you deploy to your site, Firebase creates a release object that points to a specific version. A release contains metadata about the deployment, like who deployed and when they deployed.
From your Firebase project's Hosting dashboard , you can see a full history of your live channel's releases in a Release history table. If you have multiple Hosting sites , click View for the desired site to see its release history. If you have any preview channels, they are also displayed on the Hosting dashboard.
Управление настройками канала
Для каждого канала вашего сайта вы можете управлять его настройками. Некоторые настройки, например, срок действия канала, применимы только к каналам предварительного просмотра.
Ограничьте количество сохраняемых релизов.
Each time you deploy to a channel (and create a release), Hosting keeps the version associated with the previous release in your project's Hosting storage. You can set the number of releases to keep for each channel in your project, both live and preview channels.
Почему Hosting сохраняет предыдущие версии?
Для вашего канала с прямыми трансляциями сохранение предыдущих версий позволяет при необходимости откатиться к предыдущей версии сайта. Для каналов предварительного просмотра возможность отката пока недоступна.Зачем ограничивать количество сохраняемых релизов?
This feature can help you control the usage level of your project's Hosting storage , as the content for previous releases is kept in this storage. You can monitor your Hosting storage from the Storage tab in the console.Что произойдет, если ограничить количество релизов, оставив только те, которые будут сохранены?
Когда вы устанавливаете лимит на количество сохраняемых релизов, содержимое любых релизов, превышающих установленный лимит, планируется удалить, начиная с самых старых релизов .
Вот как установить лимит места для размещения контента в канале:
В консоли Firebase откройте диалоговое окно настроек хранилища для выпуска:
Для вашего прямого эфира
В таблице «История релизов» для вашего сайта щелкните , затем выберите «Настройки хранилища релизов» .Для любого канала предварительного просмотра
В строке, соответствующей каналу предварительного просмотра, нажмите , затем выберите «Настройки канала» .
Введите количество релизов, которые вы хотите сохранить, затем нажмите «Сохранить» .
Установить срок действия предварительного просмотра канала.
По умолчанию срок действия предварительного просмотра канала истекает через 7 дней с момента его создания, но срок действия основного канала вашего сайта никогда не истечет.
When a preview channel expires, the channel, along with its releases and associated versions, are scheduled for deletion within 24 hours. The associated preview URL is also deactivated. An exception to this version-deletion is if a version is associated with another release (this happens, for example, if you clone a version from one channel to another within the same site ).
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 автоматически отображаются по URL-адресу, связанному с целевым каналом.
Эта функция полезна для отслеживания версий или если вы хотите быть уверены, что развертываете именно тот контент, который просматривали и/или тестировали на другом канале. Вот несколько примеров:
Клонируйте контент из канала предварительного просмотра "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 , содержащих каналы.
- Для сайта, используемого по умолчанию в Hosting , используйте идентификатор вашего проекта Firebase.
- Вы можете указать сайты, Hosting в одном проекте Firebase, или даже в разных проектах Firebase.
SOURCE_CHANNEL_ID и TARGET_CHANNEL_ID : это идентификаторы каналов.
- Для канала с прямыми трансляциями используйте
liveв качестве идентификатора канала. - Если указанный целевой канал еще не существует, эта команда создаст канал перед развертыванием на него.
- Для канала с прямыми трансляциями используйте
When you clone a version from one channel to another channel in the same Hosting site , Firebase creates a new release object that points to the exact same version . You will see two releases in your Hosting site that both point to the same version (as identified by the version ID).
However, if you clone a version to a channel in a different Hosting site (or a different Firebase project), Firebase creates both a new release and a new version (as identified by a different version ID).
Откатитесь к предыдущей версии вашего сайта
You can roll back to serve a previous version of your site's live channel. This action is useful if your current release has an issue and you want to roll back to serve a known working version of your site. Or perhaps your site served temporary content for a holiday or special event, but now you want to roll back to serve your "regular" content.
Откат позволяет создать новый релиз, который будет содержать ту же версию контента, что и предыдущий. В таблице истории релизов оба релиза будут иметь одинаковый идентификатор версии.
Вот как это сделать:
В консоли Firebase , в таблице «История релизов» для вашего сайта, наведите курсор на предыдущую запись о релизе, к которой вы хотите вернуться.
Нажмите , затем выберите «Откат» .
Удаление релиза вручную
Возможно, вам потребуется вручную удалить релиз из вашего рабочего канала, чтобы освободить место Hosting для вашего проекта. Вы можете удалить только предыдущие релизы, а не тот, который в данный момент размещен на вашем рабочем сайте.
When you delete a release, you're actually deleting its content, which is scheduled for deletion within 24 hours. The release object itself is kept so that you can still see its metadata (who deployed and when they deployed).
Вот как удалить релиз:
В консоли Firebase , в таблице «История релизов» вашего сайта, наведите курсор на предыдущую запись о релизе, которую вы хотите удалить.
Нажмите , затем выберите Delete .
Удаление файлов вручную
В Firebase Hosting основной способ удаления выбранных файлов с развернутого сайта — это удаление файлов локально, а затем повторное развертывание.
Удалить канал предварительного просмотра вручную
You can preview your channels by clicking on the channel you want to preview. From this view, you can see, delete, and revert the newest deployments and release that are tied to the specific channel. You can delete a preview channel, but you can't delete your site's live channel.
При удалении канала предварительного просмотра канал, вместе с его релизами и связанными версиями, планируется удалить в течение 24 часов. Связанный с ним URL-адрес предварительного просмотра также деактивируется. Исключением из правила удаления версии является случай, когда версия связана с другим релизом (это происходит, например, если вы клонируете версию из одного канала в другой в рамках одного сайта ).
Hosting поддерживает два разных способа удаления канала предварительного просмотра:
Консоль Firebase
В строке, соответствующей каналу предварительного просмотра, нажмите , затем выберите «Удалить канал» . Подтвердите удаление.Firebase CLI
Выполните следующую команду из любой директории:firebase hosting:channel:delete CHANNEL_ID
Команды командной строки для предварительного просмотра каналов и клонирования.
Команды для каналов предварительного просмотра
Все команды для каналов предварительного просмотра поддерживают цели развертывания, если у вас несколько Hosting площадок .
| Командование | Описание |
|---|---|
firebase hosting:channel:create CHANNEL_ID | Создает новый канал предварительного просмотра на сайте Hosting по умолчанию , используя указанный Эта команда не выполняет развертывание в канале. |
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 | Открывает в браузере URL-адрес указанного канала или возвращает URL-адрес, если открытие в браузере невозможно. |
Команды для клонирования версий
| Командование | Описание |
|---|---|
firebase hosting:clone \ | Клонирует последнюю развернутую версию из указанного "исходного" канала в указанный "целевой" канал. Эта команда также выполняет развертывание в указанный целевой канал. Если целевой канал еще не существует, эта команда создает новый канал предварительного просмотра на целевом Hosting перед развертыванием в этот канал. |
firebase hosting:clone \ | Клонирует указанную версию в указанный целевой канал. Эта команда также выполняет развертывание в указанный целевой канал. Если целевой канал еще не существует, эта команда создает новый канал предварительного просмотра на целевом Hosting перед развертыванием в этот канал. |