Перед развертыванием на рабочем сайте вы захотите просмотреть и протестировать свои изменения. Хостинг Firebase позволяет просматривать и тестировать изменения локально и взаимодействовать с эмулируемыми внутренними ресурсами проекта. Если вам нужно, чтобы ваши товарищи по команде просмотрели и протестировали ваши изменения, Hosting может создать общие временные URL-адреса предварительного просмотра для вашего сайта. Мы даже поддерживаем интеграцию GitHub для развертывания из запроса на вытягивание.
Прежде чем вы начнете
Выполните шаги, перечисленные на странице «Начало работы с хостингом» , в частности следующие задачи:
- Установите или обновите Firebase CLI до последней версии.
- Подключите локальный каталог проекта (содержащий содержимое вашего приложения) к вашему проекту Firebase.
При желании вы можете развернуть содержимое и конфигурацию хостинга вашего приложения, но это не обязательное условие для шагов на этой странице.
Шаг 1. Протестируйте локально
Если вы выполняете быстрые итерации или хотите, чтобы ваше приложение взаимодействовало с эмулируемыми серверными ресурсами проекта, вы можете протестировать содержимое и конфигурацию хостинга локально. При локальном тестировании Firebase обслуживает ваше веб-приложение по локально размещенному URL-адресу.
Хостинг является частью Firebase Local Emulator Suite , который позволяет вашему приложению взаимодействовать с эмулируемым содержимым и конфигурацией хостинга, а также, при необходимости, с эмулируемыми ресурсами проекта (функциями, базами данных и правилами).
(Необязательно) По умолчанию ваше локально размещенное приложение будет взаимодействовать с реальными , а не эмулированными ресурсами проекта (функциями, базой данных, правилами и т. д.). Вместо этого вы можете дополнительно подключить свое приложение для использования любых настроенных вами эмулируемых ресурсов проекта. Узнать больше: База данных реального времени | Облако Firestore | Облачные функции
В корне вашего локального каталога проекта выполните следующую команду:
firebase emulators:start
Откройте свое веб-приложение по локальному URL-адресу, возвращенному интерфейсом командной строки (обычно
http://localhost:5000
).Чтобы обновить локальный URL-адрес с изменениями, обновите браузер.
Проверка с других локальных устройств
По умолчанию эмуляторы отвечают только на запросы от localhost
. Это означает, что вы сможете получить доступ к размещенному контенту из веб-браузера вашего компьютера, но не с других устройств в вашей сети. Если вы хотите протестировать с других локальных устройств, настройте файл firebase.json
следующим образом:
"emulators": {
// ...
"hosting": {
"port": 5000
"host": "0.0.0.0"
}
}
При использовании firebase serve
ваше приложение взаимодействует с эмулируемой серверной частью для контента и конфигурации вашего хостинга (и, возможно, с функциями), но с вашей реальной серверной частью для всех других ресурсов проекта.
В корне вашего локального каталога проекта выполните следующую команду:
firebase serve --only hosting
Откройте свое веб-приложение по локальному URL-адресу, возвращенному интерфейсом командной строки (обычно
http://localhost:5000
).Чтобы обновить локальный URL-адрес с изменениями, обновите браузер.
Используйте firebase serve
для тестирования с других локальных устройств
По умолчанию firebase serve
отвечает только на запросы от localhost
. Это означает, что вы сможете получить доступ к размещенному контенту из веб-браузера вашего компьютера, но не с других устройств в вашей сети. Если вы хотите протестировать с других локальных устройств, используйте флаг --host
, например:
firebase serve --host 0.0.0.0 // accepts requests to any host
Шаг 2. Предварительный просмотр и публикация
Если вы хотите, чтобы другие пользователи могли просматривать изменения в вашем веб-приложении перед его запуском, вы можете использовать каналы предварительного просмотра.
После развертывания на канале предварительного просмотра Firebase обслуживает ваше веб-приложение по «URL-адресу предварительного просмотра», который является общим временным URL-адресом. При использовании URL-адреса предварительного просмотра ваше веб-приложение взаимодействует с вашим реальным бэкэндом для всех ресурсов проекта (за исключением любых «закрепленных» функций в вашей переписываемой конфигурации ).
Обратите внимание, что, хотя URL-адреса предварительного просмотра трудно угадать (поскольку они содержат случайный хэш), они общедоступны. Таким образом, любой, кто знает URL-адрес, может получить к нему доступ.
В корне вашего локального каталога проекта выполните следующую команду:
firebase hosting:channel:deploy CHANNEL_ID
Замените CHANNEL_ID строкой без пробелов (например,
feature_mission-2-mars
). Этот идентификатор будет использоваться для создания URL-адреса предварительного просмотра, связанного с каналом предварительного просмотра.Откройте свое веб-приложение по URL-адресу предварительного просмотра, возвращенному интерфейсом командной строки. Это будет выглядеть примерно так:
PROJECT_ID -- CHANNEL_ID - RANDOM_HASH .web.app
Чтобы обновить URL-адрес предварительного просмотра с изменениями, снова запустите ту же команду. Убедитесь, что в команде указан тот же
CHANNEL_ID
.
Узнайте об управлении каналами предварительного просмотра , в том числе о том, как установить срок действия канала.
Хостинг Firebase поддерживает действие GitHub, которое автоматически создает и обновляет URL-адрес предварительного просмотра, когда вы фиксируете изменения в запросе на вытягивание. Узнайте, как настроить и использовать этот GitHub Action .
Шаг 3. Развертывание в реальном времени
Когда вы будете готовы поделиться своими изменениями со всем миром, разверните контент и конфигурацию хостинга на своем живом канале. Firebase предлагает несколько различных вариантов для этого шага в зависимости от вашего варианта использования (см. варианты ниже).
Вариант 1. Клонируйте канал предварительного просмотра на свой канал в прямом эфире.
Этот параметр обеспечивает уверенность в том, что вы развертываете на своем живом канале именно тот контент и конфигурацию, которые вы тестировали на предварительном канале. Подробнее о клонировании версий .
Из любого каталога выполните следующую команду:
firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:live
Замените каждый заполнитель следующим:
SOURCE_SITE_ID и TARGET_SITE_ID : это идентификаторы хостинговых сайтов, которые содержат каналы.
- В качестве сайта хостинга по умолчанию используйте идентификатор проекта Firebase.
- Вы можете указать сайты, которые находятся в одном проекте Firebase или даже в разных проектах Firebase.
SOURCE_CHANNEL_ID : это идентификатор канала, который в настоящее время обслуживает версию, которую вы хотите развернуть на своем живом канале.
- Для живого канала используйте
live
в качестве идентификатора канала.
- Для живого канала используйте
Просмотрите свои изменения (следующий шаг).
Вариант 2. Развертывание из локального каталога проекта на канал в реальном времени.
Этот параметр обеспечивает гибкость настройки конфигураций, характерных для канала прямой трансляции, или для развертывания, даже если вы не использовали канал предварительного просмотра.
В корне вашего локального каталога проекта выполните следующую команду:
firebase deploy --only hosting
Просмотрите свои изменения (следующий шаг).
Шаг 4. Просмотрите свои изменения на активном сайте
Оба приведенных выше варианта развертывают контент и конфигурацию хостинга на следующих сайтах:
Субдомены, предоставленные Firebase для вашего сайта хостинга по умолчанию и любых дополнительных сайтов хостинга:
SITE_ID .web.app
(напримерPROJECT_ID .web.app
)
SITE_ID .firebaseapp.com
(напримерPROJECT_ID .firebaseapp.com
)Любые пользовательские домены , которые вы подключили к своим сайтам хостинга
Чтобы ограничить развертывание определенным сайтом хостинга, укажите цель развертывания в команде интерфейса командной строки.
Другие действия по развертыванию и информация
Добавить комментарий для развертывания
При желании вы можете добавить комментарий к файлу deploy. Этот комментарий будет отображаться вместе с другой информацией о развертывании на панели управления хостингом в консоли Firebase. Например:
firebase deploy --only hosting -m "Deploying the best new feature ever."
Добавление задач сценария перед развертыванием и после развертывания
При желании вы можете подключить сценарии оболочки к команде firebase deploy
для выполнения задач до или после развертывания. Например, ловушка после развертывания может уведомлять администраторов о развертывании нового содержимого сайта. Дополнительные сведения см. в документации Firebase CLI .
Кэширование развернутого контента
Когда делается запрос на статический контент , Firebase Hosting автоматически кэширует контент в CDN. Если вы повторно развернете контент своего сайта, Firebase автоматически очистит весь ваш кэшированный статический контент в CDN, чтобы новые запросы получали ваш новый контент.
Обратите внимание, что вы можете настроить кэширование динамического содержимого .
Обслуживание через HTTPS
Убедитесь, что все внешние ресурсы, не размещенные на хостинге Firebase, загружаются через SSL (HTTPS), включая любые внешние сценарии. Большинство браузеров не позволяют пользователям загружать «смешанный контент» (SSL и не SSL-трафик).
Следующие шаги
Интегрируйтесь с GitHub и повторяйте предварительно просмотренный контент, настроив действие GitHub .
Узнайте о дополнительных возможностях хостинга:
Взгляните на полную документацию Firebase CLI .
Подготовьтесь к запуску вашего приложения:
- Настройте оповещения о бюджете для своего проекта в Google Cloud Console.
- Следите за панелью управления «Использование и выставление счетов» в консоли Firebase, чтобы получить общую картину использования вашего проекта в нескольких сервисах Firebase. Вы также можете посетить панель управления хостингом для получения более подробной информации об использовании.
- Ознакомьтесь с контрольным списком запуска Firebase .