Каждое расширение должно иметь документацию, объясняющую пользователям, что делает расширение и как его использовать.
Минимальная требуемая документация — это набор из трех файлов разметки:
-
PREINSTALL.md
-
POSTINSTALL.md
-
CHANGELOG.md
Кроме того, вам следует также рассмотреть возможность производства:
- Файл
README
для публичного репозитория расширения. - Более подробные учебные пособия, руководства и справочные материалы опубликованы на вашем веб-сайте и связаны с вашим
PREINSTALL.md
.
Чтобы ознакомиться с некоторыми передовыми методами, общепринятыми формулировками и структурой, мы рекомендуем просмотреть файлы, доступные с официальными расширениями Firebase .
Создание README
Ваш каталог расширений может опционально содержать README. Обратите внимание, что команда firebase ext:dev:init
не генерирует его автоматически.
Однако Firebase CLI поддерживает следующую удобную команду для автоматического создания файла README
, содержащего содержимое, извлеченное из файла extension.yaml
и файла PREINSTALL.md
:
firebase ext:info ./path/to/extension --markdown > README.md
Все файлы README для официальных расширений Firebase генерируются с помощью этой команды.
Добавить информацию об установке
После того, как вы напишете или сгенерируете README, добавьте в него информацию об установке. Вы можете использовать следующий фрагмент в качестве шаблона:
--- ## 🧩 Install this extension ### Console [][install-link] [install-link]: https://console.firebase.google.com/project/_/extensions/install?ref=publisher_id /extension_name ### Firebase CLI ```bash firebase ext:installpublisher_id /extension_name --project=[your-project-id] ``` > Learn more about installing extensions in the Firebase Extensions documentation: > [console](https://firebase.google.com/docs/extensions/install-extensions?platform=console), > [CLI](https://firebase.google.com/docs/extensions/install-extensions?platform=cli) ---
Написание файла PREINSTALL
Файл PREINSTALL
— это обзор вашего расширения, своего рода «маркетинговая» страница.
Какое содержимое находится в этом файле?
- Подробное описание функциональности вашего расширения
- Список предварительных условий, таких как настройка базы данных или доступ к не-Google сервису ( пример )
- Краткое описание всех предустановочных задач и их инструкции
- Краткое описание любых задач после установки ( пример ) (подробные инструкции см. в
POSTINSTALL
) - Краткое описание любых последствий выставления счетов (начните со стандартного текста )
Где этот контент отображается для пользователя?

Консоль Firebase">
- На странице расширения extensions.dev .
- Репозиторий исходного кода для вашего расширения (внутри каталога расширения)
- Как часть README расширения (если вы используете Firebase CLI
--markdown > README.md
)
PREINSTALL
не могут получить доступ к значениям параметров расширения, поэтому не следует ожидать, что ссылки на параметры будут отображаться с фактическими значениями.
Каковы некоторые передовые практики?
По возможности уместите все содержимое файла PREINSTALL
на одной странице .Предоставьте уровень детализации, который конечному пользователю абсолютно необходимо знать перед установкой расширения. Подробные инструкции можно разместить в файле POSTINSTALL
или других дополнительных файлах.Кратко укажите, предоставляете ли вы другие инструменты или скрипты для поддержки расширения.
Полезный шаблонный текст PREINSTALL
PREINSTALL
Billing
This extension uses other Firebase or Google Cloud services which may have
associated charges:
* <list Google services / products that your extension uses>
* <list Firebase services that your extension uses>
* Cloud Secret Manager <if the extension uses secret params>
* Cloud Functions
When you use Firebase Extensions, you're only charged for the underlying
resources that you use. A paid-tier billing plan is only required if the
extension uses a service that requires a paid-tier plan, for example calling to
a Google Cloud API or making outbound network requests to non-Google services.
All Firebase services offer a no-cost tier of usage.
[Learn more about Firebase billing.](https://firebase.google.com/pricing)
<Applicable info about billing implications for non-Google services, such as:>
Usage of this extension also requires you to have a <non-Google-service> account.
You are responsible for any associated costs with your usage of <non-Google-service>.
Написание файла POSTINSTALL
POSTINSTALL
POSTINSTALL
— это подробная страница с инструкциями по действиям после установки вашего расширения.
Какое содержимое находится в этом файле?
Подробные инструкции по любым необходимым задачам после установки, таким как настройка правил безопасности Firebase или добавление клиентского кода ( пример ) Общие инструкции о том, как немедленно опробовать установленное расширение (например, «перейдите в консоль, затем сделайте это») Основная информация о том, как активировать расширение, особенно для расширений, активируемых HTTP-запросами Краткие инструкции по мониторингу установленного расширения (начните со стандартного текста )
Где этот контент отображается для пользователя?

Консоль Firebase">
В консоли Firebase после того, как пользователь установит ваше расширение (в карточке сведений об установленном расширении) Обязательно проверьте отображение содержимого POSTINSTALL
, установив расширение в реальном проекте .
Репозиторий исходного кода для вашего расширения (внутри каталога расширения)
POSTINSTALL
могут получать доступ к значениям параметров и нескольким переменным, связанным с функциями, для расширения. Когда содержимое POSTINSTALL
отображается в консоли Firebase , отображаются фактические значения , а не ссылки на параметры или переменные. Узнайте больше ниже о том, как ссылаться на параметры и переменные в файле POSTINSTALL
.
Каковы некоторые передовые практики?
Содержимое файла POSTINSTALL
должно быть кратким, но описательным.Разделите контент, используя заголовки, чтобы разбить отдельные задачи или концепции. Рассмотрите возможность публикации подробных инструкций для конкретного рабочего процесса или задачи на вашем веб-сайте ( пример ) или в дополнительных файлах разметки в репозитории расширений ( пример ). Справочные параметры и переменные, связанные с функциями, чтобы пользователь мог видеть их настроенные значения в контексте инструкций.
Ссылочные параметры и переменные
POSTINSTALL
расширения. Если вы ссылаетесь на параметры и переменные, связанные с функциями (см. таблицу ниже) в вашем файле POSTINSTALL
, то консоль заполняет эти ссылки фактическими значениями для установленного экземпляра.
POSTINSTALL
осуществляется с помощью следующего синтаксиса:${param: PARAMETER_NAME }
POSTINSTALL
. Firebase поддерживает эти переменные, чтобы вам было проще предоставлять рекомендации пользователям после установки. Они доступны для использования только в файле POSTINSTALL
, поскольку значения для этих переменных доступны только после установки.
name
в объекте ресурса функции в extension.yaml
.
Ссылка на функциональную переменную | Описание | Значение переменной (автоматически заполняется Firebase после установки расширения) |
---|---|---|
${function: function-name .location} | ||
Место, где развернута функция | Пример значения:us-central1 | |
${function: function-name .name} | ||
Имя окончательно развернутой функции, включающее идентификатор экземпляра расширения | Обобщенный формат: Пример значения: | |
${function: function-name .url} (применимо только для HTTP-функций) | ||
URL-адрес окончательно развернутой функции, к которой клиентский код может отправлять HTTP-запросы | Обобщенный формат: Пример значения: |
Полезный шаблонный текст POSTINSTALL
POSTINSTALL
Monitoring
As a best practice, you can
[monitor the activity](https://firebase.google.com/docs/extensions/manage-installed-extensions_community#monitor)
of your installed extension, including checks on its health, usage, and logs.
Документирование того, как запустить расширение
POSTINSTALL
. Для получения руководства о том, как предоставить эти инструкции, разверните раздел ниже, который относится к вашему расширению.
Расширения, запускаемые фоновыми событиями
Вносите изменения прямо в консоли
Добавить клиентский код
Расширения, запускаемые HTTP-запросами
name
, которое вы указали в ресурсном объекте функции в extension.yaml
. Чтобы обеспечить возможность нескольких установок одного и того же расширения в проекте, Firebase переименовывает функцию в следующем формате:ext- extension-instance-id - function-name
.
POSTINSTALL
вашего расширения. После установки консоль Firebase отображает содержимое файла POSTINSTALL
и заполняет эти ссылки фактическими настроенными значениями для установленного экземпляра. Например, если вы определили функцию с именем yourFunction
, вы можете включить следующее (если применимо):
Для HTTP-функций onRequest
To trigger this extension, make a request to or visit the following URL: **`${function:yourFunction.url}`**.
Для вызываемых HTTP-функций ( onCall
)This extension is implemented as an HTTP callable function. To call it from your client app, follow the instructions in the [callable functions documentation](https://firebase.google.com/docs/functions/callable#call_the_function). The name of the function to call is **`${function:yourFunction.name}`**, and its region is **`${function:yourFunction.location}`**.
Написание файла CHANGELOG
Какое содержимое находится в этом файле?
CHANGELOG.md
, который документирует изменения, включенные в каждую новую версию вашего расширения, которую вы публикуете. Поместите каждую версию под заголовком уровня 2 ( ##
); в противном случае вы можете использовать любое форматирование Markdown, которое вам нравится.
## Version 0.1.3 feature - Support deletion of directories (issue #148). ## Version 0.1.2 feature - Add a new param for recursively deleting subcollections in Cloud Firestore (issue #14). fixed - Fixed "cold start" errors experienced when the extension runs after a period of inactivity (issue #48). ## Version 0.1.1 Initial release of the _Delete User Data_ extension.
Где этот контент отображается для пользователя?
- В консоли Firebase и CLI, когда пользователи обновляются до новых версий вашего расширения. Консоль Firebase и CLI отображают только те изменения, которые вступят в силу, если пользователь завершит обновление.
- Репозиторий исходного кода вашего расширения (внутри каталога расширения).