Прежде чем начать прототипирование и тестирование веб-приложения с помощью эмулятора Firebase Hosting , убедитесь, что вы понимаете общий рабочий процесс Firebase Local Emulator Suite , а также установили и настроили Local Emulator Suite и изучили его команды CLI .
Вам также следует ознакомиться с функциями и процессом внедрения Firebase Hosting . Начните с вводной информации о Firebase Hosting .
Что я могу делать с эмулятором Firebase Hosting ?
Эмулятор Firebase Hosting обеспечивает высокоточную локальную эмуляцию Hosting сервисов, предоставляя большую часть функциональности, доступной в рабочем Hosting . Эмулятор Hosting позволяет:
- Создавайте прототипы статических сайтов и веб-приложений без дополнительных затрат на хранение или доступ.
- Перед развертыванием на вашем хостинге создайте прототип, протестируйте и отладьте функции HTTPS.
- Тестирование сайтов и веб-приложений в контейнеризированных рабочих процессах непрерывной интеграции.
Выберите проект Firebase
Firebase Local Emulator Suite эмулирует продукты для одного проекта Firebase.
Чтобы выбрать используемый проект, перед запуском эмуляторов выполните в командной строке firebase use в вашей рабочей директории. Или же вы можете передать флаг --project каждой команде эмулятора.
Local Emulator Suite поддерживает эмуляцию реальных проектов Firebase и демонстрационных проектов.
| Тип проекта | Функции | Использовать с эмуляторами |
|---|---|---|
| Настоящий | Настоящий проект Firebase — это тот, который вы создали и настроили (скорее всего, через консоль Firebase ). В реальных проектах используются работающие ресурсы, такие как экземпляры баз данных, хранилища, функции или любые другие ресурсы, которые вы настроили для этого проекта Firebase. | При работе с реальными проектами Firebase вы можете запускать эмуляторы для любого или всех поддерживаемых продуктов. Для любых продуктов, которые вы не эмулируете, ваши приложения и код будут взаимодействовать с реальным ресурсом (экземпляром базы данных, хранилищем, функцией и т. д.). |
| Демо | Демонстрационный проект Firebase не содержит реальной конфигурации Firebase и работающих ресурсов. Доступ к таким проектам обычно осуществляется через Codelabs или другие обучающие материалы. Идентификаторы демонстрационных проектов имеют префикс | При работе с демонстрационными проектами Firebase ваши приложения и код взаимодействуют только с эмуляторами. Если ваше приложение попытается взаимодействовать с ресурсом, для которого эмулятор не запущен, этот код завершится ошибкой. |
Мы рекомендуем по возможности использовать демонстрационные проекты. Преимущества включают:
- Упрощенная настройка, поскольку вы можете запускать эмуляторы, не создавая проект Firebase.
- Повышенная безопасность, поскольку если ваш код случайно вызовет неэмулированные (производственные) ресурсы, исключается возможность изменения данных, их использования и выставления счетов.
- Улучшена поддержка работы в автономном режиме, поскольку для загрузки конфигурации SDK не требуется доступ к интернету.
Основной рабочий процесс прототипирования
Если вы быстро вносите изменения или хотите, чтобы ваше приложение взаимодействовало с эмулируемыми ресурсами бэкэнда проекта, вы можете тестировать контент и конфигурацию Hosting локально. При локальном тестировании Firebase предоставляет доступ к вашему веб-приложению по локально размещенному URL-адресу.
(Необязательно) По умолчанию ваше локально размещенное приложение будет взаимодействовать с реальными , а не эмулированными ресурсами проекта (функциями, базой данных, правилами и т. д.). Вместо этого вы можете дополнительно подключить ваше приложение к использованию любых эмулированных ресурсов проекта, которые вы настроили. Подробнее: Realtime Database | Cloud Firestore | Cloud Functions
В корневом каталоге вашего локального проекта выполните следующую команду:
firebase emulators:start
Откройте ваше веб-приложение по локальному URL-адресу, полученному от CLI (обычно
http://localhost:5000).Чтобы обновить локальный URL-адрес с учетом изменений, обновите страницу в браузере.
Тестирование с других локальных устройств.
По умолчанию эмуляторы отвечают только на запросы с localhost . Это означает, что вы сможете получить доступ к размещенному контенту через веб-браузер вашего компьютера, но не с других устройств в вашей сети. Если вы хотите протестировать с других локальных устройств, настройте файл firebase.json следующим образом:
"emulators": {
// ...
"hosting": {
"port": 5000,
"host": "0.0.0.0"
}
}
Генерация токенов аутентификации для рабочих процессов непрерывной интеграции.
Если ваши рабочие процессы непрерывной интеграции используют Firebase Hosting, то для запуска firebase emulators:exec вам потребуется войти в систему, используя токен. Для других эмуляторов вход в систему не требуется.
Для генерации токена выполните firebase login:ci в локальной среде; это не следует делать из системы CI. Следуйте инструкциям для аутентификации. Вам потребуется выполнить этот шаг только один раз для каждого проекта, поскольку токен будет действителен во всех сборках. Токен следует рассматривать как пароль; убедитесь, что он хранится в секрете.
Если ваша среда CI позволяет указывать переменные окружения, которые можно использовать в скриптах сборки, просто создайте переменную окружения с именем FIREBASE_TOKEN , значением которой будет строка токена доступа. Firebase CLI автоматически подхватит переменную окружения FIREBASE_TOKEN , и эмуляторы запустятся корректно.
В крайнем случае, вы можете просто включить токен в свой скрипт сборки, но убедитесь, что посторонние лица не имеют к нему доступа. Для этого подхода с жестко заданным токеном вы можете добавить --token "YOUR_TOKEN_STRING_HERE" к команде firebase emulators:exec .
Что дальше?
- Выполните быстрый старт, используя эмулятор Hosting , следуя инструкциям в веб-лаборатории Firebase .
- Разберитесь, как создавать прототипы функций HTTPS с помощью эмулятора Hosting , как описано в руководствах по использованию функций в хостинге .
- Чтобы ознакомиться с тщательно подобранной подборкой видеороликов и подробными примерами, перейдите по ссылке на плейлист «Обучение работе с эмуляторами Firebase» .