Цели развертывания – это краткие идентификаторы (которые вы задаете сами) ресурсов Firebase в вашем проекте Firebase, например сайта Hosting с уникальными статическими объектами или группы экземпляров Realtime Database с одинаковыми правилами безопасности.
Целевые объекты развертывания полезны, если у вас несколько сайтов Hosting, несколько сегментов Cloud Storage или несколько экземпляров Realtime Database. С помощью целевых объектов развертывания интерфейс командной строки Firebase может развертывать настройки для определенного ресурса Firebase или группы ресурсов в вашем проекте, например:
- Конфигурация хостинга для каждого из ваших сайтов Hosting.
- Статические объекты из каталога проекта для каждого из ваших сайтов Hosting.
- Правила безопасности, используемые несколькими экземплярами Realtime Database или несколькими сегментами Cloud Storage
Чтобы настроить целевое развертывание:
- Примените
TARGET_NAMEк целевому ресурсу Firebase или группе ресурсов Firebase. - В файле
firebase.jsonукажите связанный файлTARGET_NAMEпри настройке каждого ресурса или группы ресурсов.
Когда вы выполняете команды CLI Firebase (например, firebase deploy), CLI Firebase сопоставляет каждый TARGET_NAME с соответствующими ресурсами Firebase. Затем интерфейс командной строки передает в проект Firebase настройки для каждого ресурса.
Как настроить целевые платформы для ресурсов Firebase
С помощью интерфейса командной строки Firebase примените TARGET_NAME (краткий идентификатор, который вы определяете самостоятельно) к ресурсу Firebase или группе ресурсов Firebase.
Firebase поддерживает цели развертывания для:
- Firebase Hosting сайтов
- Cloud Storage for Firebase сегментов передачи данных
- Firebase Realtime Database экземпляров
Настройки целевых платформ хранятся в файле .firebaserc в каталоге проекта, поэтому их нужно задавать только один раз для каждого проекта.
Как настроить целевые объекты развертывания для Hosting
Чтобы создать целевое местоположение для развертывания и применить TARGET_NAME к сайту Hosting, выполните следующую команду CLI:
firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER
Где находятся параметры:
TYPE – тип ресурса Firebase.
- Для сайтов Firebase Hosting используйте
hosting.
- Для сайтов Firebase Hosting используйте
TARGET_NAME – уникальное название сайта Hosting, на который вы развертываете приложение.
RESOURCE_IDENTIFIER –
SITE_IDдля Hosting сайта как указано в вашем проекте Firebase
Например, если вы создали два сайта (myapp-blog и myapp-app) в проекте Firebase, то можете применить к каждому из них уникальный TARGET_NAME (blog и app соответственно), выполнив следующие команды:
firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app
Как настроить целевые развертывания для Cloud Storage или Realtime Database
Чтобы создать целевой объект развертывания и применить TARGET_NAME к набору ресурсов Cloud Storage или Realtime Database, выполните следующую команду CLI:
firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...
Где находятся параметры:
TYPE – тип ресурса Firebase.
- Для сегментов Cloud Storage используйте
storage. - Для экземпляров Realtime Database используйте
database.
- Для сегментов Cloud Storage используйте
TARGET_NAME – уникальное название ресурса или группы ресурсов, к которым применяются одни и те же правила безопасности.
RESOURCE_IDENTIFIER – идентификаторы ресурсов в вашем проекте Firebase (например, названия сегментов хранилища или идентификаторы экземпляров базы данных), для которых действуют одни и те же правила безопасности.
Например, вы можете применить TARGET_NAME main к группе из трех региональных сегментов Cloud Storage (у которых одинаковые правила безопасности), выполнив следующую команду:
firebase target:apply storage main myproject.firebasestorage.app myproject-eu myproject-ja
Обратите внимание, что myproject.firebasestorage.app – это идентификатор сегмента по умолчанию, а myproject-eu и myproject-ja – два дополнительных сегмента, созданных в проекте Firebase.
Как настроить файл firebase.json для использования целей развертывания
После того как вы настроите целевые объекты развертывания для ресурсов Firebase, укажите каждую примененную TARGET_NAME в файле конфигурации firebase.json:
- Создайте массив объектов конфигурации для каждого ресурса Firebase
TYPE(hosting,storageилиdatabase). - В массивах укажите
target(используяTARGET_NAME) и задайте настройки для связанного ресурса Firebase или группы ресурсов.
Если в вашем проекте Firebase два сайта Hosting и три сегмента Cloud Storage (с одинаковыми правилами безопасности), файл firebase.json будет выглядеть так:
{
"hosting": [ {
"target": "blog", // "blog" is the applied TARGET_NAME for the Hosting site "myapp-blog"
"public": "blog/dist", // contents of this folder are deployed to the site "myapp-blog"
// ...
},
{
"target": "app", // "app" is the applied TARGET_NAME for the Hosting site "myapp-app"
"public": "app/dist", // contents of this folder are deployed to the site "myapp-app"
// ...
"rewrites": [...] // You can define specific Hosting configurations for each site
}
]
}
{
"storage": [ {
"target": "main", // "main" is the applied TARGET_NAME for the group of Cloud Storage buckets
"rules": "storage.main.rules" // the file that contains the shared security rules
}
]
}Если у вас несколько конфигураций ресурсов, вы можете создать несколько целевых объектов развертывания и указать каждый из них в файле firebase.json. Все связанные ресурсы будут развернуты вместе при выполнении команды firebase deploy.
Как управлять целевыми сервисами для развертывания
Настройки целевых платформ хранятся в файле .firebaserc в каталоге проекта. Вы можете управлять целевыми платформами для развертывания проекта, выполнив любую из следующих команд в корневом каталоге проекта.
| Команда | Описание |
|---|---|
firebase target
|
Перечисляет целевые объекты развертывания для текущего каталога проекта. |
firebase target:remove \
|
Удаляет ресурс из целевого объекта, которому он был назначен. |
firebase target:clear \
|
Удаляет все ресурсы или сайт Hosting из указанного целевого объекта. |
Команды target:remove и target:clear автоматически обновляют настройки deploy
target в файле .firebaserc в каталоге проекта.
Тестирование перед развертыванием
Выполните любую из следующих команд в корневом каталоге проекта.
| Команда | Описание |
|---|---|
firebase emulators:start
|
Эмулирует все настроенные ресурсы в каталоге проекта. |
firebase emulators:start \ |
Эмулирует только контент и конфигурацию Hosting указанного сайта Hosting. |
firebase emulators:start \
|
Эмулирует только файл правил для указанной цели Cloud Storage. |
firebase emulators:start \
|
Эмулирует только файл правил для указанной цели Realtime Database. |
Подробнее о том, как настроить и использовать Firebase Local Emulator Suite…
Как развернуть определенные ресурсы Firebase
Выполните любую из следующих команд в корневом каталоге проекта.
| Команда | Описание |
|---|---|
firebase deploy
|
Создает выпуск всех развертываемых ресурсов в каталоге проекта. |
firebase deploy \
|
Развертывает только контент и конфигурацию Hosting указанного сайта Hosting на рабочем канале сайта. |
firebase hosting:channel:deploy CHANNEL_ID \ |
Развертывает только контент и конфигурацию Hosting указанного сайта Hosting в канале предварительного просмотра для сайта. |
firebase deploy \
|
Развертывает только файл правил для указанной цели Cloud Storage. |
firebase deploy \
|
Развертывает только файл правил для указанной цели Realtime Database |