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