Обзор издателя расширений

Расширение Firebase выполняет определенную задачу или набор задач в ответ на HTTP-запросы или запускает события из других продуктов Firebase и Google, таких как Firebase Cloud Messaging, Cloud Firestore или Pub/Sub.

Вы можете создать собственное расширение для личного использования или поделиться им со всем миром в Firebase Extensions Hub. Например, ваше расширение может выполнять определенную задачу, которая регулярно требуется вашему приложению, или может упростить доступ к одному из API вашей компании. После создания расширения вы можете поделиться им с другими. Эти пользователи могут установить и настроить расширение для использования в своих проектах Firebase.

Структура расширения

Вы можете думать о расширении как о трех основных компонентах:

  • Код облачных функций на JavaScript или TypeScript
  • Метаданные, описывающие ваше расширение
  • Документация, которая поможет вашим пользователям настроить и использовать ваше расширение

Чтобы разработать расширение, вы собираете эти компоненты в следующую структуру:

example-extension
├── functions
│   ├── integration-tests
│   │   ├── extensions
│   │   │   └── example-extension.env
│   │   ├── firebase.json
│   │   └── integration-test.spec.js
│   ├── index.js
│   └── package.json
├── README.md
├── PREINSTALL.md
├── POSTINSTALL.md
├── CHANGELOG.md
├── icon.png
└── extension.yaml
  • Каталог functions содержит ваш код Cloud Functions на JavaScript или TypeScript. Это код, который выполняет задачи расширения в ответ на события, инициированные сервисами Firebase и Google.
  • Файл extension.yaml содержит метаданные о вашем расширении, такие как его триггеры и роли доступа IAM, а также любые параметры, которые вы хотите настроить для пользователя.
  • Файлы PREINSTALL , POSTINSTALL и CHANGELOG — это минимум документации, который должен иметь ваше расширение. Эти файлы помогают вашим пользователям узнать, что делает ваше расширение, как его использовать и какие обновления вы сделали. Вы также должны предоставить значок, чтобы помочь пользователям узнать ваше расширение. Консоль Firebase, интерфейс командной строки Firebase и Центр расширений отображают содержимое этих файлов, когда пользователи изучают, устанавливают и управляют вашим расширением.

Создав расширение, вы можете использовать интерфейс командной строки Firebase, чтобы установить его в проект или опубликовать в Центре расширений, где каждый может найти и установить его в свои проекты.

С какими продуктами может взаимодействовать мое расширение?

Поскольку расширение Firebase выполняет свою работу с использованием облачных функций, вопрос о возможной интеграции можно рассматривать двумя способами: какие продукты могут запускать функции моего расширения? и После срабатывания, с какими продуктами могут взаимодействовать функции моего расширения?

Поддерживаемые триггеры функций

Ручные триггеры

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

  • Триггеры HTTP: развертывание функции в конечной точке HTTP
  • Вызываемые функции: вызывайте свои облачные функции непосредственно из кода iOS, Android или веб-клиента, используя клиентские SDK Firebase.

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

Триггеры службы Firebase

Большинство продуктов Firebase генерируют события, которые могут активировать облачные функции расширения.

  • Analytics: запускайте функции, когда Analytics регистрирует событие
  • Распределение приложений: запуск функций, когда распространение приложений вызывает оповещение.
  • Аутентификация: запуск функций, когда пользователи создают и удаляют учетные записи.
  • Cloud Firestore: запуск функций при создании, обновлении или удалении страниц.
  • Облачное хранилище : запускает функции, когда объекты загружаются, архивируются или удаляются из сегментов.
  • Crashlytics: запуск функций, когда Crashlytics запускает оповещение
  • Мониторинг производительности: запуск функций, когда мониторинг производительности запускает предупреждение
  • База данных в реальном времени: запуск функций при создании, обновлении или удалении данных.
  • Удаленная конфигурация: запуск функций при обновлении параметра
  • Test Lab: запуск функций, когда Test Lab инициирует оповещение

Триггеры облачного сервиса Google

Расширение также может включать функции, которые запускают несколько облачных сервисов Google, не относящихся к Firebase:

  • Cloud Pub/Sub : расширение может включать функции, которые срабатывают, когда события публикуются в настраиваемой теме Pub/Sub.
  • Облачный планировщик : расширение может включать функции, которые запускаются по заданному расписанию.
  • Облачные задачи : расширение может включать функции, которые можно ставить в очередь с помощью облачных задач. Firebase Extensions использует эту возможность, чтобы позволить вам, как автору расширения, писать функции, которые реагируют на события «жизненного цикла» расширения: первая установка в проекте, обновление до новой версии и перенастройка.
  • Eventarc : расширение может включать функции, которые срабатывают, когда события публикуются в настраиваемый канал Eventarc; и наоборот, расширение может публиковать свои собственные события в канале Eventarc, чтобы пользователи могли определять свои собственные функции, которые запускаются событиями расширения .

Поддерживается из функций

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

  • Читать, писать и иным образом взаимодействовать с любой службой Firebase или Google Cloud , которая использует поддерживаемую роль IAM .
  • Работайте с любой сторонней службой , предоставляющей веб-API.
  • Работайте со своими пользовательскими службами , если вы предоставляете веб-API.
  • Запустите большинство библиотек JavaScript, включая TensorFlow.js , Express.js и т. д.

Как построить расширение

Руководство «Начало работы» проведет вас через процесс создания, тестирования и публикации полного расширения и является рекомендуемым способом узнать, как его создать.

Начать

После того, как вы ознакомились с руководством по началу работы один раз, вы можете обратиться к руководствам по отдельным темам, в которых объясняется каждая из задач, связанных с созданием собственного расширения: