Расширение Firebase выполняет определенную задачу или набор задач в ответ на HTTP-запросы или события, запускаемые другими продуктами Firebase и Google, такими как Firebase Cloud Messaging, Cloud Firestore или Pub/Sub.
В Центре расширений Firebase вы можете создать собственное расширение для личного использования или для распространения по всему миру. Например, ваше расширение может выполнять определенную задачу, которая регулярно требуется вашему приложению, или упростить доступ к одному из API вашей компании. После создания расширения вы можете поделиться им с другими пользователями. Эти пользователи смогут установить и настроить расширение для использования в своих собственных проектах Firebase.
Структура расширения
Расширение можно рассматривать как состоящее из трех основных компонентов:
- Код Cloud Functions на 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 CLI и Extensions Hub отображают содержимое этих файлов, когда пользователи изучают, устанавливают и управляют вашим расширением.
После создания расширения вы можете использовать Firebase CLI для его установки в проект или опубликовать его в Центре расширений, где любой желающий сможет найти и установить его в свой проект.
С какими продуктами может взаимодействовать мое расширение?
Поскольку расширение Firebase работает с использованием Cloud Functions, вопрос о возможных интеграциях можно рассматривать с двух точек зрения: Какие продукты могут запускать функции моего расширения? И с какими продуктами могут взаимодействовать функции моего расширения после их запуска?
Поддерживаемые триггеры функций
Ручные триггеры
Во-первых, вы можете запустить функцию вручную. Расширения Firebase и Cloud Functions поддерживают два способа ручного запуска функций:
- HTTP-триггеры: развертывание функции на HTTP-конечной точке
- Вызываемые функции: вызывайте свои облачные функции напрямую из кода вашего iOS, Android или веб-клиента, используя SDK клиента Firebase.
Предоставляя HTTP-конечные точки из вашего расширения, вы потенциально можете интегрировать его с любым веб-сервисом, поддерживающим веб-хуки. Благодаря вызываемым функциям, пользователи, установившие ваше расширение, могут использовать SDK Firebase в качестве клиентской библиотеки для доступа к API, реализованному вашим расширением.
Триггеры сервисов Firebase
Большинство продуктов Firebase генерируют события, которые могут запускать облачные функции расширения.
- Аналитика: запуск функций при регистрации события в системе аналитики.
- Распространение приложений: запуск функций при срабатывании оповещения в процессе распространения приложений.
- Аутентификация: запуск функций при создании и удалении учетных записей пользователями.
- Cloud Firestore: запускает функции при создании, обновлении или удалении страниц.
- Облачное хранилище : запускает функции при загрузке, архивировании или удалении объектов из хранилищ.
- Crashlytics: запускает функции при срабатывании оповещения Crashlytics.
- Мониторинг производительности: запускает функции при срабатывании оповещения в результате мониторинга производительности.
- База данных реального времени: запускает функции при создании, обновлении или удалении данных.
- Удалённая настройка: запуск функций при обновлении параметра.
- Тестовая лаборатория: запускает функции при срабатывании оповещения в тестовой лаборатории.
Триггеры сервисов Google Cloud
Расширение также может включать функции, которые запускают несколько облачных сервисов Google, не относящихся к Firebase:
- Cloud Pub/Sub : расширение может включать функции, которые запускаются при отправке событий в настраиваемую тему Pub/Sub.
- Планировщик облачных задач : расширение может включать функции, которые выполняются по заданному расписанию.
- Облачные задачи : расширение может включать функции, которые можно ставить в очередь с помощью облачных задач. Firebase Extensions использует эту возможность, чтобы вы, как автор расширения, могли писать функции, которые реагируют на события «жизненного цикла» расширения: первая установка в проекте, обновление до новой версии и перенастройка.
- Eventarc : расширение может включать функции, которые запускаются при публикации событий в настраиваемый канал Eventarc; и наоборот, расширение может публиковать свои собственные события в канал Eventarc, чтобы пользователи могли определять свои собственные функции, которые запускаются на основе событий расширения .
Поддерживается функциями
После активации облачной функции расширения диапазон возможных интеграций, как правило, неограничен. Вот некоторые основные возможности облачной функции:
- Читать, записывать и иным образом взаимодействовать с любым сервисом Firebase или Google Cloud , использующим поддерживаемую роль IAM .
- Работайте с любым сторонним сервисом , предоставляющим веб-API.
- Если вы предоставляете веб-API, используйте собственные сервисы .
- Запускайте большинство библиотек JavaScript, включая TensorFlow.js , Express.js и другие.
Как создать расширение
Вводный курс «Начало работы » шаг за шагом описывает процесс создания, тестирования и публикации полноценного расширения и является рекомендуемым способом научиться его создавать.
После того, как вы один раз пройдете руководство по началу работы, вы можете обратиться к руководствам по отдельным темам, в которых объясняется каждая из задач, связанных с созданием собственного расширения:
- Напишите функции для расширения.
- Использование параметров в расширении
- Настройте соответствующие права доступа для расширения.
- Реагировать на события жизненного цикла расширения
- Добавить пользовательские перехватчики к расширению
- Создайте пользовательскую документацию для вашего расширения.
- Опубликуйте расширение в Центре расширений.
- Полная справочная информация по файлу extension.yaml.