Цели развертывания — это идентификаторы с короткими именами (которые вы определяете самостоятельно) для ресурсов 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при настройке параметров для каждого ресурса или группы ресурсов.
Когда вы запускаете команды Firebase CLI (например, firebase deploy ), Firebase CLI связывает каждый TARGET_NAME со связанными с ним ресурсами Firebase. Затем CLI передает вашему проекту Firebase настройки для каждого ресурса.
Настройте цели развертывания для ваших ресурсов Firebase
Используя интерфейс командной строки Firebase , примените TARGET_NAME (идентификатор короткого имени, который вы определяете самостоятельно) к ресурсу Firebase или группе ресурсов Firebase. Firebase поддерживает цели развертывания для:
Настройки целей развертывания хранятся в файле .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_IDHosting сайта , указанный в вашем проекте 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 :
- Создайте массив объектов конфигурации для каждого
TYPEресурса Firebase (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 автоматически обновляют настройки цели развертывания в файле .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 |