На этой странице объясняется, как опубликовать расширение в Extensions Hub.
Прежде чем начать
Чтобы опубликовать расширение, сначала вам необходимо зарегистрироваться в качестве издателя расширений .
Поддающиеся проверке источники
Все расширения, опубликованные в Extensions Hub, должны иметь общедоступный источник. Вместо того, чтобы загружать исходный код расширения непосредственно в Extensions Hub, вы указываете местоположение источника, и Extension Hub загрузит его и соберет оттуда.
В настоящее время это означает, что исходный код вашего расширения будет доступен в общедоступном репозитории GitHub.
Загрузка из проверенного источника имеет ряд преимуществ:
- Пользователи могут проверить исходный код конкретной версии расширения, которое будет установлено.
- Вы можете быть уверены, что загружаете только то, что собираетесь загрузить, а не, например, незавершенную работу или случайные файлы, оставшиеся от разработки.
Рекомендуемый цикл разработки
Инструменты разработки расширений Firebase поддерживают загрузку предварительных версий ваших расширений, что упрощает тестирование ваших расширений и процесс установки расширений в той же среде, в которой они в конечном итоге будут выпущены.
Эта возможность делает возможным цикл разработки, подобный следующему:
Разрабатывайте и быстро совершенствуйте свое расширение с помощью Firebase Emulator Suite .
Проверьте свое расширение в реальном проекте, установив его из локального источника:
firebase ext:install /path/to/extension
firebase deploy --only extensions
Загрузите предварительную версию в Extensions Hub (см. ниже). Распространите ссылку на установку для более широкого тестирования и при необходимости загружайте дополнительные предварительные версии.
Загрузите окончательную стабильную версию в Extension Hub (см. ниже) и отправьте ее на рассмотрение. Если расширение пройдет проверку, оно будет опубликовано в Extension Hub.
Увеличьте номер версии в
extension.yaml
и повторите этот цикл для следующей версии вашего расширения.
Загрузите новое расширение
Чтобы загрузить расширение в первый раз:
Необязательно : зафиксируйте свой код в общедоступном репозитории GitHub.
Запустите команду
ext:dev:upload
интерфейсе командной строки Firebase:GitHub
firebase ext:dev:upload your_publisher_id/your_extension_id
Местный источник
cd /path/to/extension
firebase ext:dev:upload your_publisher_id/your_extension_id --local
При вызове команды вы указываете следующее:
Идентификатор издателя, который вы зарегистрировали .
Строка идентификатора, которая будет идентифицировать расширение. Назовите свои расширения в следующем формате:
firebase-product - description-of-tasks-performed
. Например:firestore-bigquery-export
Команда запросит дополнительную информацию:
Если вы загружаете с GitHub:
URL-адрес репозитория расширения на GitHub. Обратите внимание, что репозиторий может содержать несколько расширений, если каждое расширение имеет уникальный корень.
Когда вы впервые загружаете новое расширение, репозиторий будет зарегистрирован как канонический источник вашего расширения.
Каталог в репозитории, содержащий ваше расширение.
Ссылка Git на коммит, на основе которого вы хотите создать исходный код версии расширения. Это может быть хеш коммита, тег или имя ветки.
Стадия выпуска загружаемой вами версии.
Этапы
alpha
,beta
иrc
(кандидат на выпуск) предназначены для загрузки предварительных версий для установки тестировщиками. Используйте один из этих этапов для первоначальной загрузки нового расширения.stable
стадия используется для общедоступных выпусков, публикуемых в Extensions Hub. Загрузкаstable
версии автоматически инициирует проверку и, если она пройдет, расширение будет опубликовано.
Обратите внимание, что вы не указываете номер версии — это значение берется из файла
extension.yaml
. Когда вы загружаете предварительную версию расширения, к версии добавляется стадия и номер загрузки. Например, еслиextension.yaml
указана версия 1.0.1 и вы загружаете кандидат на выпуск, результатом будет версия1.0.1-rc.0
; загрузка другого кандидата на выпуск той же версии автоматически увеличит счетчик, в результате чего получится1.0.1-rc.1
и так далее.
Теперь, когда вы загрузили предварительную версию расширения, вы можете поделиться ею с другими для тестирования. Пользователи могут установить ваше расширение одним из двух способов:
С помощью консоли : пользователи могут установить расширение, щелкнув ссылку следующего формата:
https://console.firebase.google.com/project/_/extensions/install?ref=your_publisher_id/your_extension_id@version
Вы можете поделиться прямой ссылкой со своими тестировщиками.
С помощью CLI : пользователи могут установить расширение, передав строку идентификатора расширения команде
ext:install
:firebase ext:install your_publisher_id/your_extension_id@version \ --project=destination_project_id
Загрузите обновленную версию
После загрузки первой версии расширения вы можете загружать обновления для устранения проблем, добавления функций или перехода на этап выпуска. Когда вы загружаете новую версию, пользователям, у которых установлена более старая версия вашего расширения, в консоли Firebase будет предложено обновиться.
Чтобы загрузить обновление:
Необязательно : зафиксируйте свой код в общедоступном репозитории Git.
Запустите команду
ext:dev:upload
интерфейсе командной строки Firebase:GitHub
firebase ext:dev:upload your_publisher_id/your_extension_id
На этот раз вам не будет предложено указать репозиторий GitHub или корневой каталог расширения, поскольку они уже настроены для вашего расширения. Если с тех пор вы провели рефакторинг структуры своего репозитория или перешли в новый репозиторий, вы можете изменить их с помощью аргументов команды
--root
и--repo
.Местный источник
cd /path/to/extension
firebase ext:dev:upload your_publisher_id/your_extension_id --local
Отправьте расширение для публикации
Когда вы будете готовы опубликовать свое расширение:
Зафиксируйте свой код в общедоступном репозитории Git. (Требуется для общедоступных выпусков.)
Запустите команду
ext:dev:upload
в интерфейсе командной строки Firebase, указав в качестве стадии выпускаstable
:firebase ext:dev:upload your_publisher_id/your_extension_id
Если вы ранее публиковали версию своего расширения, при загрузке новой стабильной версии расширение автоматически будет отправлено на рассмотрение.
Если вы загрузили первую стабильную версию расширения, найдите расширение на панели управления издателя и нажмите «Опубликовать в Extensions Hub» .
После отправки рассмотрение может занять несколько дней. В случае принятия расширение будет опубликовано в Extensions Hub. В случае отклонения вы получите сообщение с объяснением причины; после этого вы сможете устранить обнаруженные проблемы и повторно отправить их на рассмотрение.
Чтобы ускорить рассмотрение и повысить свои шансы пройти проверку с первой попытки, перед отправкой дважды проверьте следующее:
- Вы тщательно протестировали свое расширение и процесс установки.
- Ваша документация полная и правильная и хорошо отображается в консоли Firebase.
- Ваше имя издателя и брендинг четко и точно идентифицируют вас как издателя.
- Имя, описание и значок вашего расширения четко и точно отражают его назначение.
- Вы применили полезные и точные теги.
- В
extension.yaml
вы указали все используемые вами API Google и сторонних разработчиков, а также все типы событий, которые генерирует ваше расширение. - Вы запрашиваете доступ только к тем ролям, которые необходимы для работы расширения, и четко объяснили пользователям, зачем вам такой доступ.
- Ваши исходные файлы явно лицензируются в соответствии с условиями
Apache-2.0
.
Управление загруженными и опубликованными расширениями
Перечислите загруженные расширения
Чтобы просмотреть расширения, которые вы загрузили под своим идентификатором издателя, выполните одно из следующих действий:
Панель издателя
Просмотрите их на панели издателя .
Интерфейс командной строки Firebase
Запустите команду ext:dev:list
:
firebase ext:dev:list your_publisher_id
Просмотр использования загруженных расширений
Чтобы просмотреть использование расширений, которые вы загрузили под своим идентификатором издателя, выполните одно из следующих действий:
Панель издателя
На панели издателя есть совокупные показатели использования для всех ваших расширений и отдельные показатели для каждого расширения.
Интерфейс командной строки Firebase
Запустите команду ext:dev:usage
:
firebase ext:dev:usage your_publisher_id
Устареть версии расширения
В какой-то момент вы можете захотеть объявить устаревшую версию вашего расширения. Например, если вы выпускаете новую версию, которая исправляет критическую ошибку или обновляет зависимость важным обновлением безопасности, важно не допустить установки старой версии новыми пользователями и побудить существующих пользователей выполнить обновление.
Чтобы объявить версию расширения устаревшей, выполните одно из следующих действий:
Панель издателя
- На панели издателя нажмите расширение, чтобы открыть его подробную информацию.
- Выберите версию, которую вы хотите объявить устаревшей.
- Нажмите Устаревшая версия .
Интерфейс командной строки Firebase
Запустите команду ext:dev:deprecate
:
firebase ext:dev:deprecate your_publisher_id/your_extension_id versions \
[--message "deprecation_message"]
Вы можете указать одну версию или диапазон версий. Примеры:
-
1.0.2
-
1.1.0-1.1.7
-
<1.2.0
-
1.1.*
Устаревшие версии расширения не отображаются в Центре расширений и не могут быть установлены. Пользователи, в чьих проектах установлена устаревшая версия, увидят сообщение, призывающее их выполнить обновление; Тем временем они все еще могут использовать и перенастраивать расширение.
Если каждая версия расширения признана устаревшей, расширение считается устаревшим и будет исключено из Extensions Hub. При загрузке новой версии устаревшего расширения автоматически инициируется проверка, а после принятия она снова публикуется в Extension Hub.
Чтобы отменить прекращение поддержки, используйте панель издателя или запустите команду ext:dev:undeprecate
в интерфейсе командной строки Firebase:
firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions
Приложение: Устранение ошибок сборки
Когда вы загружаете расширение, серверная часть сначала создает исходный код, используя следующий процесс:
Клонирует ваш репозиторий GitHub и извлекает указанную ссылку на источник.
Устанавливает зависимости NPM, запуская
npm clean-install
в каждом исходном каталоге функции, указанном вextension.yaml
(см.sourceDirectory
в ресурсах облачной функции ).Обратите внимание на следующее:
Каждому файлу
package.json
должен соответствовать соответствующий файлpackage-lock.json
. Для получения дополнительной информации см. npm-ci .Сценарии после установки не будут запускаться во время установки зависимостей. Если ваша сборка исходного кода основана на сценариях, выполняемых после установки, проведите ее рефакторинг перед загрузкой.
Собирает ваш код, запуская
npm run build
в каждом исходном каталоге функции, указанном вextension.yaml
.
В окончательном пакете расширения, к которому будет предоставлен общий доступ, будет сохранен только корневой каталог вашего расширения.
Если при загрузке расширения вы получаете ошибки сборки, повторите описанные выше шаги сборки локально в новом каталоге до тех пор, пока ошибок не будет, а затем повторите попытку загрузки.
,На этой странице объясняется, как опубликовать расширение в Extension Hub.
Прежде чем начать
Чтобы опубликовать расширение, сначала вам необходимо зарегистрироваться в качестве издателя расширений .
Поддающиеся проверке источники
Все расширения, опубликованные в Extensions Hub, должны иметь общедоступный источник. Вместо того, чтобы загружать исходный код расширения непосредственно в Extensions Hub, вы указываете местоположение источника, и Extension Hub загрузит его и соберет оттуда.
В настоящее время это означает, что исходный код вашего расширения будет доступен в общедоступном репозитории GitHub.
Загрузка из проверенного источника имеет ряд преимуществ:
- Пользователи могут проверить исходный код конкретной версии расширения, которое будет установлено.
- Вы можете быть уверены, что загружаете только то, что собираетесь загрузить, а не, например, незавершенную работу или случайные файлы, оставшиеся от разработки.
Рекомендуемый цикл разработки
Инструменты разработки расширений Firebase поддерживают загрузку предварительных версий ваших расширений, что упрощает тестирование ваших расширений и процесс установки расширений в той же среде, в которой они в конечном итоге будут выпущены.
Эта возможность делает возможным цикл разработки, подобный следующему:
Разрабатывайте и быстро совершенствуйте свое расширение с помощью Firebase Emulator Suite .
Проверьте свое расширение в реальном проекте, установив его из локального источника:
firebase ext:install /path/to/extension
firebase deploy --only extensions
Загрузите предварительную версию в Extensions Hub (см. ниже). Распространите ссылку на установку для более широкого тестирования и при необходимости загружайте дополнительные предварительные версии.
Загрузите окончательную стабильную версию в Extension Hub (см. ниже) и отправьте ее на рассмотрение. Если расширение пройдет проверку, оно будет опубликовано в Extension Hub.
Увеличьте номер версии в
extension.yaml
и повторите этот цикл для следующей версии вашего расширения.
Загрузите новое расширение
Чтобы загрузить расширение в первый раз:
Необязательно : зафиксируйте свой код в общедоступном репозитории GitHub.
Запустите команду
ext:dev:upload
интерфейсе командной строки Firebase:GitHub
firebase ext:dev:upload your_publisher_id/your_extension_id
Местный источник
cd /path/to/extension
firebase ext:dev:upload your_publisher_id/your_extension_id --local
При вызове команды вы указываете следующее:
Идентификатор издателя, который вы зарегистрировали .
Строка идентификатора, которая будет идентифицировать расширение. Назовите свои расширения в следующем формате:
firebase-product - description-of-tasks-performed
. Например:firestore-bigquery-export
Команда запросит дополнительную информацию:
Если вы загружаете с GitHub:
URL-адрес репозитория расширения на GitHub. Обратите внимание, что репозиторий может содержать несколько расширений, если каждое расширение имеет уникальный корень.
Когда вы впервые загружаете новое расширение, репозиторий будет зарегистрирован как канонический источник вашего расширения.
Каталог в репозитории, содержащий ваше расширение.
Ссылка Git на коммит, на основе которого вы хотите создать исходный код версии расширения. Это может быть хеш коммита, тег или имя ветки.
Стадия выпуска загружаемой вами версии.
Этапы
alpha
,beta
иrc
(кандидат на выпуск) предназначены для загрузки предварительных версий для установки тестировщиками. Используйте один из этих этапов для первоначальной загрузки нового расширения.stable
стадия используется для общедоступных выпусков, публикуемых в Extensions Hub. Загрузкаstable
версии автоматически инициирует проверку и, если она пройдет, расширение будет опубликовано.
Обратите внимание, что вы не указываете номер версии — это значение берется из файла
extension.yaml
. Когда вы загружаете предварительную версию расширения, к версии добавляется стадия и номер загрузки. Например, еслиextension.yaml
указана версия 1.0.1 и вы загружаете кандидат на выпуск, результатом будет версия1.0.1-rc.0
; загрузка другого кандидата на выпуск той же версии автоматически увеличит счетчик, в результате чего получится1.0.1-rc.1
и так далее.
Теперь, когда вы загрузили предварительную версию расширения, вы можете поделиться ею с другими для тестирования. Пользователи могут установить ваше расширение одним из двух способов:
С помощью консоли : пользователи могут установить расширение, щелкнув ссылку следующего формата:
https://console.firebase.google.com/project/_/extensions/install?ref=your_publisher_id/your_extension_id@version
Вы можете поделиться прямой ссылкой со своими тестировщиками.
С помощью CLI : пользователи могут установить расширение, передав строку идентификатора расширения команде
ext:install
:firebase ext:install your_publisher_id/your_extension_id@version \ --project=destination_project_id
Загрузите обновленную версию
После загрузки первой версии расширения вы можете загружать обновления для устранения проблем, добавления функций или перехода на этап выпуска. Когда вы загружаете новую версию, пользователям, у которых установлена более старая версия вашего расширения, в консоли Firebase будет предложено обновиться.
Чтобы загрузить обновление:
Необязательно : зафиксируйте свой код в общедоступном репозитории Git.
Запустите команду
ext:dev:upload
интерфейсе командной строки Firebase:GitHub
firebase ext:dev:upload your_publisher_id/your_extension_id
На этот раз вам не будет предложено указать репозиторий GitHub или корневой каталог расширения, поскольку они уже настроены для вашего расширения. Если с тех пор вы провели рефакторинг структуры своего репозитория или перешли в новый репозиторий, вы можете изменить их с помощью аргументов команды
--root
и--repo
.Местный источник
cd /path/to/extension
firebase ext:dev:upload your_publisher_id/your_extension_id --local
Отправьте расширение для публикации
Когда вы будете готовы опубликовать свое расширение:
Зафиксируйте свой код в общедоступном репозитории Git. (Требуется для общедоступных выпусков.)
Запустите команду
ext:dev:upload
в интерфейсе командной строки Firebase, указав в качестве стадии выпускаstable
:firebase ext:dev:upload your_publisher_id/your_extension_id
Если вы ранее публиковали версию своего расширения, при загрузке новой стабильной версии расширение автоматически будет отправлено на рассмотрение.
Если вы загрузили первую стабильную версию расширения, найдите расширение на панели управления издателя и нажмите «Опубликовать в Extensions Hub» .
После отправки рассмотрение может занять несколько дней. В случае принятия расширение будет опубликовано в Extensions Hub. В случае отклонения вы получите сообщение с объяснением причины; после этого вы сможете устранить обнаруженные проблемы и повторно отправить их на рассмотрение.
Чтобы ускорить рассмотрение и повысить свои шансы пройти проверку с первой попытки, перед отправкой дважды проверьте следующее:
- Вы тщательно протестировали свое расширение и процесс установки.
- Ваша документация полная и правильная и хорошо отображается в консоли Firebase.
- Ваше имя издателя и брендинг четко и точно идентифицируют вас как издателя.
- Имя, описание и значок вашего расширения четко и точно отражают его назначение.
- Вы применили полезные и точные теги.
- В
extension.yaml
вы указали все используемые вами API Google и сторонних разработчиков, а также все типы событий, которые генерирует ваше расширение. - Вы запрашиваете доступ только к тем ролям, которые необходимы для работы расширения, и четко объяснили пользователям, зачем вам такой доступ.
- Ваши исходные файлы явно лицензируются в соответствии с условиями
Apache-2.0
.
Управление загруженными и опубликованными расширениями
Перечислите загруженные расширения
Чтобы просмотреть расширения, которые вы загрузили под своим идентификатором издателя, выполните одно из следующих действий:
Панель издателя
Просмотрите их на панели издателя .
Интерфейс командной строки Firebase
Запустите команду ext:dev:list
:
firebase ext:dev:list your_publisher_id
Просмотр использования загруженных расширений
Чтобы просмотреть использование расширений, которые вы загрузили под своим идентификатором издателя, выполните одно из следующих действий:
Панель издателя
На панели издателя есть совокупные показатели использования для всех ваших расширений и отдельные показатели для каждого расширения.
Интерфейс командной строки Firebase
Запустите команду ext:dev:usage
:
firebase ext:dev:usage your_publisher_id
Устареть версии расширения
В какой-то момент вы можете захотеть объявить старую версию вашего расширения устаревшей. Например, если вы выпускаете новую версию, которая исправляет критическую ошибку или обновляет зависимость важным обновлением безопасности, важно не допустить установки старой версии новыми пользователями и побудить существующих пользователей выполнить обновление.
Чтобы объявить версию расширения устаревшей, выполните одно из следующих действий:
Панель издателя
- На панели издателя нажмите расширение, чтобы открыть его подробную информацию.
- Выберите версию, которую вы хотите объявить устаревшей.
- Нажмите Устаревшая версия .
Интерфейс командной строки Firebase
Запустите команду ext:dev:deprecate
:
firebase ext:dev:deprecate your_publisher_id/your_extension_id versions \
[--message "deprecation_message"]
Вы можете указать одну версию или диапазон версий. Примеры:
-
1.0.2
-
1.1.0-1.1.7
-
<1.2.0
-
1.1.*
Устаревшие версии расширения не отображаются в Центре расширений и не могут быть установлены. Пользователи, в чьих проектах установлена устаревшая версия, увидят сообщение, призывающее их выполнить обновление; Тем временем они все еще могут использовать и перенастраивать расширение.
Если каждая версия расширения признана устаревшей, расширение считается устаревшим и будет исключено из списка Extensions Hub. При загрузке новой версии устаревшего расширения автоматически инициируется проверка, и после принятия она снова публикуется в Extensions Hub.
Чтобы отменить прекращение поддержки, используйте панель издателя или запустите команду ext:dev:undeprecate
в интерфейсе командной строки Firebase:
firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions
Приложение: Устранение ошибок сборки
Когда вы загружаете расширение, серверная часть сначала создает исходный код, используя следующий процесс:
Клонирует ваш репозиторий GitHub и извлекает указанную ссылку на источник.
Устанавливает зависимости NPM, запуская
npm clean-install
в каждом исходном каталоге функции, указанном вextension.yaml
(см.sourceDirectory
в ресурсах облачной функции ).Обратите внимание на следующее:
Каждому файлу
package.json
должен соответствовать соответствующий файлpackage-lock.json
. Для получения дополнительной информации см. npm-ci .Сценарии после установки не будут запускаться во время установки зависимостей. Если ваша сборка исходного кода основана на сценариях, выполняемых после установки, проведите ее рефакторинг перед загрузкой.
Собирает ваш код, запуская
npm run build
в каждом исходном каталоге функции, указанном вextension.yaml
.
В окончательном пакете расширения, к которому будет предоставлен общий доступ, будет сохранен только корневой каталог вашего расширения.
Если при загрузке расширения вы получаете ошибки сборки, повторите описанные выше шаги сборки локально в новом каталоге, пока ошибок не будет, а затем повторите попытку загрузки.
,На этой странице объясняется, как опубликовать расширение в Extension Hub.
Прежде чем начать
Чтобы опубликовать расширение, сначала вам необходимо зарегистрироваться в качестве издателя расширений .
Поддающиеся проверке источники
Все расширения, опубликованные в Extensions Hub, должны иметь общедоступный источник. Вместо того, чтобы загружать исходный код расширения непосредственно в Extensions Hub, вы указываете местоположение источника, и Extension Hub загрузит его и соберет оттуда.
В настоящее время это означает, что исходный код вашего расширения будет доступен в общедоступном репозитории GitHub.
Загрузка из проверенного источника имеет ряд преимуществ:
- Пользователи могут проверить исходный код конкретной версии расширения, которое будет установлено.
- Вы можете быть уверены, что загружаете только то, что собираетесь загрузить, а не, например, незавершенную работу или случайные файлы, оставшиеся от разработки.
Рекомендуемый цикл разработки
Инструменты разработки расширений Firebase поддерживают загрузку предварительных версий ваших расширений, что упрощает тестирование ваших расширений и процесс установки расширений в той же среде, в которой они в конечном итоге будут выпущены.
Эта возможность делает возможным цикл разработки, подобный следующему:
Разрабатывайте и быстро совершенствуйте свое расширение с помощью Firebase Emulator Suite .
Проверьте свое расширение в реальном проекте, установив его из локального источника:
firebase ext:install /path/to/extension
firebase deploy --only extensions
Загрузите предварительную версию в Extensions Hub (см. ниже). Распространите ссылку на установку для более широкого тестирования и при необходимости загружайте дополнительные предварительные версии.
Загрузите окончательную стабильную версию в Extension Hub (см. ниже) и отправьте ее на рассмотрение. Если расширение пройдет проверку, оно будет опубликовано в Extension Hub.
Увеличьте номер версии в
extension.yaml
и повторите этот цикл для следующей версии вашего расширения.
Загрузите новое расширение
Чтобы загрузить расширение в первый раз:
Необязательно : зафиксируйте свой код в общедоступном репозитории GitHub.
Запустите команду
ext:dev:upload
интерфейсе командной строки Firebase:GitHub
firebase ext:dev:upload your_publisher_id/your_extension_id
Местный источник
cd /path/to/extension
firebase ext:dev:upload your_publisher_id/your_extension_id --local
При вызове команды вы указываете следующее:
Идентификатор издателя, который вы зарегистрировали .
Строка идентификатора, которая будет идентифицировать расширение. Назовите свои расширения в следующем формате:
firebase-product - description-of-tasks-performed
. Например:firestore-bigquery-export
Команда запросит дополнительную информацию:
Если вы загружаете с GitHub:
URL-адрес репозитория расширения на GitHub. Обратите внимание, что репозиторий может содержать несколько расширений, если каждое расширение имеет уникальный корень.
Когда вы впервые загружаете новое расширение, репозиторий будет зарегистрирован как канонический источник вашего расширения.
Каталог в репозитории, содержащий ваше расширение.
Ссылка Git на коммит, на основе которого вы хотите создать исходный код версии расширения. Это может быть хеш коммита, тег или имя ветки.
Стадия выпуска загружаемой вами версии.
Этапы
alpha
,beta
иrc
(кандидат на выпуск) предназначены для загрузки предварительных версий для установки тестировщиками. Используйте один из этих этапов для первоначальной загрузки нового расширения.stable
стадия используется для общедоступных выпусков, публикуемых в Extensions Hub. Загрузкаstable
версии автоматически инициирует проверку и, если она пройдет, расширение будет опубликовано.
Обратите внимание, что вы не указываете номер версии — это значение берется из файла
extension.yaml
. Когда вы загружаете предварительную версию расширения, к версии добавляется стадия и номер загрузки. Например, еслиextension.yaml
указана версия 1.0.1 и вы загружаете кандидат на выпуск, результатом будет версия1.0.1-rc.0
; загрузка другого кандидата на выпуск той же версии автоматически увеличит счетчик, в результате чего получится1.0.1-rc.1
и так далее.
Теперь, когда вы загрузили предварительную версию расширения, вы можете поделиться ею с другими для тестирования. Пользователи могут установить ваше расширение одним из двух способов:
С помощью консоли : пользователи могут установить расширение, щелкнув ссылку следующего формата:
https://console.firebase.google.com/project/_/extensions/install?ref=your_publisher_id/your_extension_id@version
Вы можете поделиться прямой ссылкой со своими тестировщиками.
С помощью CLI : пользователи могут установить расширение, передав строку идентификатора расширения команде
ext:install
:firebase ext:install your_publisher_id/your_extension_id@version \ --project=destination_project_id
Загрузите обновленную версию
После загрузки первой версии расширения вы можете загружать обновления для устранения проблем, добавления функций или перехода на этап выпуска. Когда вы загружаете новую версию, пользователям, у которых установлена более старая версия вашего расширения, в консоли Firebase будет предложено обновиться.
Чтобы загрузить обновление:
Необязательно : зафиксируйте свой код в общедоступном репозитории Git.
Запустите команду
ext:dev:upload
интерфейсе командной строки Firebase:GitHub
firebase ext:dev:upload your_publisher_id/your_extension_id
На этот раз вам не будет предложено указать репозиторий GitHub или корневой каталог расширения, поскольку они уже настроены для вашего расширения. Если с тех пор вы провели рефакторинг структуры своего репозитория или перешли в новый репозиторий, вы можете изменить их с помощью аргументов команды
--root
и--repo
.Местный источник
cd /path/to/extension
firebase ext:dev:upload your_publisher_id/your_extension_id --local
Отправьте расширение для публикации
Когда вы будете готовы опубликовать свое расширение:
Зафиксируйте свой код в общедоступном репозитории Git. (Требуется для общедоступных выпусков.)
Запустите команду
ext:dev:upload
в интерфейсе командной строки Firebase, указав в качестве стадии выпускаstable
:firebase ext:dev:upload your_publisher_id/your_extension_id
Если вы ранее публиковали версию своего расширения, при загрузке новой стабильной версии расширение автоматически будет отправлено на рассмотрение.
Если вы загрузили первую стабильную версию расширения, найдите расширение на панели управления издателя и нажмите «Опубликовать в Extensions Hub» .
После отправки рассмотрение может занять несколько дней. В случае принятия расширение будет опубликовано в Extensions Hub. В случае отклонения вы получите сообщение с объяснением причины; после этого вы сможете устранить обнаруженные проблемы и повторно отправить их на рассмотрение.
Чтобы ускорить рассмотрение и повысить свои шансы пройти проверку с первой попытки, перед отправкой дважды проверьте следующее:
- Вы тщательно протестировали свое расширение и процесс установки.
- Ваша документация полная и правильная и хорошо отображается в консоли Firebase.
- Ваше имя издателя и брендинг четко и точно идентифицируют вас как издателя.
- Имя, описание и значок вашего расширения четко и точно отражают его назначение.
- Вы применили полезные и точные теги.
- В
extension.yaml
вы указали все используемые вами API Google и сторонних разработчиков, а также все типы событий, которые генерирует ваше расширение. - Вы запрашиваете доступ только к тем ролям, которые необходимы для работы расширения, и четко объяснили пользователям, зачем вам такой доступ.
- Ваши исходные файлы явно лицензируются в соответствии с условиями
Apache-2.0
.
Управление загруженными и опубликованными расширениями
Перечислите загруженные вами расширения
Чтобы просмотреть расширения, которые вы загрузили под своим идентификатором издателя, выполните одно из следующих действий:
Панель издателя
Просмотрите их на панели издателя .
Интерфейс командной строки Firebase
Запустите команду ext:dev:list
:
firebase ext:dev:list your_publisher_id
Просмотр использования загруженных расширений
Чтобы просмотреть использование расширений, которые вы загрузили под своим идентификатором издателя, выполните одно из следующих действий:
Панель издателя
На панели издателя есть совокупные показатели использования для всех ваших расширений и отдельные показатели для каждого расширения.
Интерфейс командной строки Firebase
Запустите команду ext:dev:usage
:
firebase ext:dev:usage your_publisher_id
Устаревшая версия расширения
В какой-то момент вы можете захотеть объявить устаревшую версию вашего расширения. Например, если вы выпускаете новую версию, которая исправляет критическую ошибку или обновляет зависимость важным обновлением безопасности, важно не допустить установки старой версии новыми пользователями и побудить существующих пользователей выполнить обновление.
Чтобы объявить версию расширения устаревшей, выполните одно из следующих действий:
Панель издателя
- На панели издателя нажмите расширение, чтобы открыть его подробную информацию.
- Выберите версию, которую вы хотите объявить устаревшей.
- Нажмите Устаревшая версия .
Интерфейс командной строки Firebase
Запустите команду ext:dev:deprecate
:
firebase ext:dev:deprecate your_publisher_id/your_extension_id versions \
[--message "deprecation_message"]
Вы можете указать одну версию или диапазон версий. Примеры:
-
1.0.2
-
1.1.0-1.1.7
-
<1.2.0
-
1.1.*
Устаревшие версии расширения не отображаются в Центре расширений и не могут быть установлены. Пользователи, в чьих проектах установлена устаревшая версия, увидят сообщение, призывающее их выполнить обновление; Тем временем они все еще могут использовать и перенастраивать расширение.
Если каждая версия расширения признана устаревшей, расширение считается устаревшим и будет исключено из списка Extensions Hub. При загрузке новой версии устаревшего расширения автоматически инициируется проверка, и после принятия она снова публикуется в Extensions Hub.
Чтобы отменить прекращение поддержки, используйте панель издателя или запустите команду ext:dev:undeprecate
в интерфейсе командной строки Firebase:
firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions
Приложение: Устранение ошибок сборки
Когда вы загружаете расширение, серверная часть сначала создает исходный код, используя следующий процесс:
Клонирует ваш репозиторий GitHub и извлекает указанную ссылку на источник.
Устанавливает зависимости NPM, запуская
npm clean-install
в каждом исходном каталоге функции, указанном вextension.yaml
(см.sourceDirectory
в ресурсах облачной функции ).Обратите внимание на следующее:
Каждому файлу
package.json
должен соответствовать соответствующий файлpackage-lock.json
. Для получения дополнительной информации см. npm-ci .Сценарии после установки не будут запускаться во время установки зависимостей. Если ваша сборка исходного кода основана на сценариях, выполняемых после установки, проведите ее рефакторинг перед загрузкой.
Собирает код, запуская
npm run build
в каждом исходном каталоге функции, указанном вextension.yaml
.
В окончательном пакете расширения, к которому будет предоставлен общий доступ, будет сохранен только корневой каталог вашего расширения.
Если при загрузке расширения вы получаете ошибки сборки, повторите описанные выше шаги сборки локально в новом каталоге, пока ошибок не будет, а затем повторите попытку загрузки.
,На этой странице объясняется, как опубликовать расширение в Extension Hub.
Прежде чем начать
Чтобы опубликовать расширение, сначала вам необходимо зарегистрироваться в качестве издателя расширений .
Поддающиеся проверке источники
Все расширения, опубликованные в Extensions Hub, должны иметь общедоступный источник. Вместо того, чтобы загружать исходный код расширения непосредственно в Extensions Hub, вы указываете местоположение источника, и Extension Hub загрузит его и соберет оттуда.
В настоящее время это означает, что исходный код вашего расширения будет доступен в общедоступном репозитории GitHub.
Загрузка из проверенного источника имеет ряд преимуществ:
- Пользователи могут проверить исходный код конкретной версии расширения, которое будет установлено.
- Вы можете быть уверены, что загружаете только то, что собираетесь загрузить, а не, например, незавершенную работу или случайные файлы, оставшиеся от разработки.
Рекомендуемый цикл разработки
Инструменты разработки расширений Firebase поддерживают загрузку предварительных версий ваших расширений, что упрощает тестирование ваших расширений и процесс установки расширений в той же среде, в которой они в конечном итоге будут выпущены.
Эта возможность делает возможным цикл разработки, подобный следующему:
Разрабатывайте и быстро совершенствуйте свое расширение с помощью Firebase Emulator Suite .
Проверьте свое расширение в реальном проекте, установив его из локального источника:
firebase ext:install /path/to/extension
firebase deploy --only extensions
Загрузите предварительную версию в Extensions Hub (см. ниже). Распространите ссылку на установку для более широкого тестирования и при необходимости загружайте дополнительные предварительные версии.
Загрузите окончательную стабильную версию в Extension Hub (см. ниже) и отправьте ее на рассмотрение. Если расширение пройдет проверку, оно будет опубликовано в Extension Hub.
Увеличьте номер версии в
extension.yaml
и повторите этот цикл для следующей версии вашего расширения.
Загрузите новое расширение
Чтобы загрузить расширение в первый раз:
Необязательно : зафиксируйте свой код в общедоступном репозитории GitHub.
Запустите команду
ext:dev:upload
интерфейсе командной строки Firebase:GitHub
firebase ext:dev:upload your_publisher_id/your_extension_id
Местный источник
cd /path/to/extension
firebase ext:dev:upload your_publisher_id/your_extension_id --local
При вызове команды вы указываете следующее:
Идентификатор издателя, который вы зарегистрировали .
Строка идентификатора, которая будет идентифицировать расширение. Назовите свои расширения в следующем формате:
firebase-product - description-of-tasks-performed
. Например:firestore-bigquery-export
Команда запросит дополнительную информацию:
Если вы загружаете с GitHub:
URL-адрес репозитория расширения на GitHub. Обратите внимание, что репозиторий может содержать несколько расширений, если каждое расширение имеет уникальный корень.
Когда вы впервые загружаете новое расширение, репозиторий будет зарегистрирован как канонический источник вашего расширения.
Каталог в репозитории, который содержит ваше расширение.
Справочник по GIT о коммите, который вы хотите построить источник версии расширения. Это может быть хэш, тег или название филиала.
Этап выпуска версии, которую вы загружаете.
Стадии
alpha
,beta
иrc
(выпуск кандидатов) предназначены для загрузки версий перед выпуском для установки тестировщиков. Используйте один из этих этапов для начальной загрузки нового расширения.stable
стадия используется для публичных выпусков, которые будут опубликованы в центре расширений. Загрузкаstable
выпуска автоматически инициирует обзор, и, если он пройдет, опубликует расширение.
Обратите внимание, что вы не указываете номер версии - это значение поступает из файла
extension.yaml
. Когда вы загружаете версию расширения перед выпуском, к версии добавляется номер сцены и загрузки. Например, еслиextension.yaml
указывает версию 1.0.1 и вы загружаете кандидат в релиз, это приведет к версии1.0.1-rc.0
; Загрузка другого кандидата в релиз той же версии автоматически увеличивает счет, что приведет к1.0.1-rc.1
и т. Д.
Теперь, когда вы загрузили предварительную версию расширения, вы можете поделиться ею с другими для тестирования. Пользователи могут установить ваше расширение любым из двух способов:
С консоли : пользователи могут установить расширение, нажав на ссылку со следующим форматом:
https://console.firebase.google.com/project/_/extensions/install?ref=your_publisher_id/your_extension_id@version
Вы можете поделиться прямой ссылкой со своими тестерами.
С помощью CLI : пользователи могут установить расширение, передавая строку идентификатора расширения в команду
ext:install
:firebase ext:install your_publisher_id/your_extension_id@version \ --project=destination_project_id
Загрузите обновленную версию
После того, как вы загрузили первую версию расширения, вы можете загрузить обновления, чтобы исправить проблемы, добавить функции или продвигать этап выпуска. Когда вы загружаете новую версию, пользователи, у которых есть более старая версия вашего расширения, будет предложена в консоли Firebase для обновления.
Чтобы загрузить обновление:
Необязательно : совершите свой код в публичный репозиторий GIT.
Запустите Firebase Cli's
ext:dev:upload
команду:GitHub
firebase ext:dev:upload your_publisher_id/your_extension_id
На этот раз вам не будет предложено указать репозиторий GitHub или корневой каталог расширения, поскольку они уже были настроены для вашего расширения. Если вы с тех пор рефкторировали свою структуру репозитория или перешли на новый репозиторий, вы можете изменить их с помощью командных аргументов
--root
и--repo
Местный источник
cd /path/to/extension
firebase ext:dev:upload your_publisher_id/your_extension_id --local
Отправить продление для публикации
Когда вы будете готовы публично выпустить расширение:
Поместите свой код в публичный репозиторий GIT. (Требуется для общественных выпусков.)
Запустите Firebase CLI
ext:dev:upload
команду, указавstable
стабильную стадию:firebase ext:dev:upload your_publisher_id/your_extension_id
Если вы ранее опубликовали версию вашего расширения, загрузка нового стабильного выпуска автоматически отправит расширение для просмотра.
Если вы загрузили первый стабильный релиз расширения, найдите расширение на панели панели издателя и нажмите «Публиковать в центре расширений» .
После подачи проверка может занять несколько дней. В случае принятия расширение будет опубликовано в центр расширений. В случае отклонения вы получите сообщение с объяснением причины; после этого вы сможете устранить обнаруженные проблемы и повторно отправить их на рассмотрение.
Чтобы ускорить обзор и увеличить свои шансы на передачу первой попытки, перед отправкой, дважды проверьте следующее:
- Вы тщательно протестировали свое расширение и процесс установки.
- Ваша документация полна и правильная, и хорошо отображается в консоли Firebase.
- Название вашего издателя и брендинг четко и точно идентифицируют вас как издателя.
- Имя, описание и значок вашего расширения четко и точно представляют цель вашего расширения.
- Вы применили полезные и точные теги.
- Вы объявили в
extension.yaml
All Google и не Google API, которые вы используете, и все типы событий, которые испускает ваше расширение. - Вы запрашиваете доступ только к ролям, необходимым для функции расширения, и вы четко объяснили пользователям, зачем вам такой доступ.
- Ваши исходные файлы четко лицензированы в соответствии с условиями
Apache-2.0
.
Управлять загруженными и опубликованными расширениями
Перечислите свои загруженные расширения
Чтобы перечислить расширения, которые вы загрузили под идентификатором вашего издателя, сделайте одно из следующих действий:
Издательская панель
Посмотреть их на панели панели издателя .
Интерфейс командной строки Firebase
Запустите ext:dev:list
Command:
firebase ext:dev:list your_publisher_id
Посмотреть использование загруженных расширений
Чтобы просмотреть использование расширений, которые вы загрузили под идентификатором вашего издателя, сделайте одно из следующих действий:
Издательская панель
Панельная панель издателя имеет кумулятивные показатели использования для всех ваших расширений и индивидуальных показателей для каждого расширения.
Интерфейс командной строки Firebase
Запустите ext:dev:usage
:
firebase ext:dev:usage your_publisher_id
Установить версию расширения
В какой -то момент вы можете установить старую версию вашего расширения. Например, если вы выпускаете новую версию, которая исправляет критическую ошибку или обновляет зависимость с важным обновлением безопасности, важно не дать новым пользователям установить старую версию и поощрять существующих пользователей к обновлению.
Чтобы установить версию расширения, сделайте одно из следующих действий:
Издательская панель
- На приборной панели издателя нажмите «Расширение», чтобы открыть его представление.
- Выберите версию, которую вы хотите установить.
- Нажмите на то, чтобы выпустить версию .
Интерфейс командной строки Firebase
Запустите ext:dev:deprecate
:
firebase ext:dev:deprecate your_publisher_id/your_extension_id versions \
[--message "deprecation_message"]
Вы можете указать одну версию или диапазон версий. Примеры:
-
1.0.2
-
1.1.0-1.1.7
-
<1.2.0
-
1.1.*
Умеренные версии расширения не перечислены в центре расширений и не могут быть установлены. Пользователи, чьи проекты имеют установленную версию, увидят сообщение, поощряющее их обновить; Они все еще могут использовать и повторно сконфигурировать расширение тем временем.
Если каждая версия расширения устарела, расширение считается устаревшим и будет исключено из центра расширений. Загрузка новой версии устаревшего расширения автоматически инициирует обзор и после принятия еще раз опубликует его в центре расширений.
Чтобы обратить вспять настройку, используйте панель инструментов издателя или запустите Firebase CLI ext:dev:undeprecate
:
firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions
Приложение: Устранение неполадок ошибок сборки
Когда вы загружаете расширение, бэкэнд сначала строит ваш исходный код, используя следующий процесс:
Клоны вашего репозитория GitHub и проверяют указанный исходный реф.
Устанавливает зависимости NPM путем запуска
npm clean-install
в каждом каталоге источника функции, указанном вextension.yaml
(см.sourceDirectory
в облачных функциях ресурсах ).Обратите внимание на следующее:
Каждый файл
package.json
должен иметь соответствующий файлpackage-lock.json
. Для получения дополнительной информации см. NPM-CI .Сценарии после установки не будут выполняться во время установки зависимостей. Если ваша сборка исходного кода опирается на сценарии после установки, рефракторйте его перед загрузкой.
Создает ваш код, запустив
npm run build
в каждом каталоге источника функции, указанном вextension.yaml
.
Только корневой каталог вашего расширения будет сохранен в окончательном пакете расширения, который будет использоваться.
Если вы получаете ошибки сборки при загрузке расширения, повторите шаги сборки выше локально в свежем каталоге, пока не появится ошибок, затем попробуйте загрузить снова.