Создайте документацию для пользователей расширения

У каждого расширения должна быть документация, в которой объясняется, что оно делает и как им пользоваться.

Минимальный набор документации состоит из трех файлов Markdown:

  • PREINSTALL.md
  • POSTINSTALL.md
  • CHANGELOG.md

Кроме того, вы можете создавать:

  • Файл README для общедоступного хранилища расширения.
  • Подробные руководства, инструкции и справочные материалы, опубликованные на вашем сайте и связанные с файлом PREINSTALL.md.

Чтобы узнать о рекомендациях, а также о распространенных фразах и структурах, ознакомьтесь с файлами, доступными в официальных расширениях Firebase.

Создание файла README

Каталог расширения может содержать файл README. Обратите внимание, что команда firebase ext:dev:init не генерирует его автоматически.

Однако CLI Firebase поддерживает следующую удобную команду для автоматического создания файла README, содержащего контент, извлеченный из файлов extension.yaml и PREINSTALL.md:

firebase ext:info ./path/to/extension --markdown > README.md

Все файлы README для официальных расширений Firebase генерируются с помощью этой команды.

Добавьте информацию об установке

После того как вы напишете или сгенерируете файл README, добавьте в него информацию об установке. В качестве шаблона можно использовать следующий фрагмент кода:

---

## 🧩 Install this extension

### Console

[![Install this extension in your Firebase project](https://www.gstatic.com/mobilesdk/210513_mobilesdk/install-extension.png "Install this extension in your Firebase project")][install-link]

[install-link]: https://console.firebase.google.com/project/_/extensions/install?ref=publisher_id/extension_name

### Firebase CLI

```bash
firebase ext:install publisher_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 – это обзор расширения, своего рода маркетинговая страница.

Что содержится в этом файле?

  • Подробное описание функций расширения.
  • Список предварительных требований, таких как настройка базы данных или доступ к стороннему сервису (пример).
  • Краткое описание задач, которые нужно выполнить перед установкой, и инструкции по их выполнению.
  • Краткое описание действий, которые нужно выполнить после установки (пример). Подробные инструкции должны быть приведены в файле POSTINSTALL.
  • Краткое описание последствий для оплаты (начните со стандартного текста)

Где пользователи видят этот контент?

Изображение предустановленного контента в <span class=Firebase console">
Предустановка контента в консоли Firebase

Большое изображение предустановленного контента в <span class=Консоль Firebase">

  • На странице расширения на сайте extensions.dev.
  • Хранилище исходного кода расширения (в каталоге расширения).
  • В файле README расширения (если вы используете флаг --markdown > README.md интерфейса командной строки Firebase).

Файлы PREINSTALL не могут получить доступ к значениям параметров расширения, поэтому не стоит ожидать, что ссылки на параметры будут отображаться с фактическими значениями.

Какие рекомендации вы можете дать?

  • По возможности ограничьте содержимое файла PREINSTALL одной страницей.
  • Предоставьте информацию, которую конечный пользователь обязательно должен знать перед установкой расширения.
  • Добавьте подробные инструкции в файл POSTINSTALL или другие дополнительные файлы.
  • Кратко упомяните, предоставляете ли вы другие инструменты или скрипты для поддержки расширения.

Запись файла POSTINSTALL

Файл POSTINSTALL – это страница с подробными инструкциями по установке расширения.

Что содержится в этом файле?

  • Подробные инструкции по выполнению обязательных задач после установки, например по настройке правил безопасности Firebase или добавлению клиентского кода (пример).
  • Общие инструкции о том, как сразу же попробовать установленное расширение (например, "перейдите в консоль и сделайте следующее").
  • Базовая информация о том, как активировать расширение, особенно для расширений, активируемых HTTP-запросом.
  • Краткие инструкции по отслеживанию установленного расширения (начните со стандартного текста).

Где пользователи видят этот контент?

Изображение контента, доступного после установки, в <span class=Консоль Firebase">
Контент, доступный после установки, в консоли Firebase

Большое изображение контента, доступного после установки, в <span class=Консоль Firebase">

  • в консоли Firebase после того, как пользователь установит расширение (на карточке сведений об установленном расширении);

  • Хранилище исходного кода расширения (в каталоге расширения).

Файлы POSTINSTALL могут получать доступ к значениям параметров и нескольким переменным, связанным с функциями расширения. Когда контент POSTINSTALL отображается в консоли Firebase, вместо ссылок на параметры или переменные показываются фактические значения. Ниже рассказывается, как указывать параметры и переменные в файле POSTINSTALL.

Какие рекомендации вы можете дать?

  • Полное содержимое файла POSTINSTALL должно быть кратким, но информативным.
  • Разделите контент на разделы с помощью заголовков, чтобы разбить отдельные задачи или концепции.
  • Рекомендуем опубликовать подробные инструкции по определенному рабочему процессу или задаче на своем сайте (пример) или в дополнительных файлах Markdown в хранилище расширения (пример).
  • Укажите параметры и переменные, связанные с функциями, чтобы пользователь видел их настроенные значения в контексте инструкций.

Как ссылаться на параметры и переменные

После установки в консоли Firebase появится содержимое файла POSTINSTALL расширения. Если в файле POSTINSTALL вы ссылаетесь на параметры и переменные, связанные с функциями (см. таблицу ниже), то консоль заполняет эти ссылки фактическими значениями для установленного экземпляра.

Получите доступ к настроенным значениям параметров в файле POSTINSTALL, используя следующий синтаксис: ${param:PARAMETER_NAME}.

Вы также можете ссылаться на следующие переменные, связанные с функциями, только в файле POSTINSTALL. Firebase поддерживает эти переменные, чтобы вы могли легко предоставлять пользователям инструкции после установки. Их можно использовать только в файле POSTINSTALL, поскольку значения этих переменных доступны только после установки.

В этой таблице function-name – это значение поля name в объекте ресурса функции в extension.yaml.

Справка по переменным, связанным с функциями Описание Значение переменной (автоматически заполняется Firebase после установки расширения)
${function:function-name.location}
Местоположение, где развернута функция. Пример значения:
us-central1
${function:function-name.name}
Название конечной развернутой функции, которое включает идентификатор экземпляра расширения.

Общий формат:
ext-extension-instance-id-function-name

Пример значения:
ext-my-awesome-extension-6m31-yourFunctionName

${function:function-name.url} (только для HTTP-функций)
URL конечной развернутой функции, к которой клиентский код может отправлять HTTP-запросы.

Общий формат:
https://deployment-location-project-id.cloudfunctions.net/name-of-final-deployed-function

Пример значения:
https://us-central1-project-123.cloudfunctions.net/ext-my-awesome-extension-6m31-yourFunctionName

Документирование способов запуска расширения

В пользовательской документации к расширению необходимо объяснить, как его запустить. Инструкции могут быть настолько подробными, насколько вы считаете нужным, но не забывайте о рекомендациях по созданию файла POSTINSTALL. Чтобы узнать, как предоставить эти инструкции, разверните раздел ниже, который относится к вашему расширению.

Как написать файл CHANGELOG

Что содержится в этом файле?

У каждого расширения должен быть файл CHANGELOG.md, в котором задокументированы изменения, включенные в каждую новую версию расширения. Каждую версию нужно поместить под заголовком второго уровня (##). В остальном вы можете использовать любое форматирование 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 отображаются только изменения, которые вступят в силу, если пользователь завершит обновление.
  • Хранилище исходного кода расширения (в каталоге расширения).