Цели развертывания — это идентификаторы с короткими именами (которые вы определяете самостоятельно) для ресурсов 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_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.appspot.com myproject-eu myproject-ja
Обратите внимание, что myproject.appspot.com
— это идентификатор корзины по умолчанию, а 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 |