擴展發布者概述

Firebase 擴展執行一項特定任務或一組任務,以響應 HTTP 請求或觸發來自其他 Firebase 和 Google 產品(例如 Firebase Cloud Messaging、Cloud Firestore 或 Pub/Sub)的事件。

您可以構建自己的擴展供個人使用或在 Firebase Extensions Hub 中與全世界共享。例如,您的擴展程序可以執行您的應用程序經常需要的特定任務,或者可以更輕鬆地訪問您公司的 API 之一。構建擴展後,您可以與其他人共享。這些用戶可以安裝和配置該擴展以在自己的 Firebase 項目中使用。

擴展的結構

您可以將擴展視為具有三個主要組件:

  • JavaScript 或 TypeScript 格式的 Cloud Functions 代碼
  • 描述您的擴展的元數據
  • 幫助您的用戶配置和使用您的擴展的文檔

要開發擴展,您可以將這些組件組裝成以下結構:

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 格式的 Cloud Functions 代碼。這是執行擴展程序任務以響應 Firebase 和 Google 服務觸發的事件的代碼。
  • extension.yaml文件包含有關您的擴展的元數據,例如其觸發器和 IAM 訪問角色,以及您希望用戶可配置的任何參數。
  • PREINSTALLPOSTINSTALLCHANGELOG文件是您的擴展必須具有的最少文檔。這些文件可幫助您的用戶了解您的擴展程序的用途、如何使用它以及您進行了哪些更新。您還應該提供一個圖標來幫助用戶識別您的擴展程序。當用戶瀏覽、安裝和管理您的擴展程序時,Firebase 控制台、Firebase CLI 和擴展中心會顯示這些文件的內容。

創建擴展後,您可以使用 Firebase CLI 將其安裝到項目中或將其發佈到擴展中心,任何人都可以在其中發現它並將其安裝到其項目中。

我的擴展程序可以與哪些產品交互?

由於 Firebase 擴展程序使用 Cloud Functions 進行工作,因此您可以通過兩種方式思考可能的集成問題:哪些產品可以觸發我的擴展程序的功能?一旦觸發,我的擴展程序的功能可以與哪些產品交互?

支持的功能觸發器

手動觸發器

首先,您可以手動觸發一個函數。 Firebase Extensions 和 Cloud Functions 支持兩種手動觸發函數的方式:

  • HTTP 觸發器:將函數部署到 HTTP 端點
  • 可調用函數:使用 Firebase 客戶端 SDK 直接從 iOS、Android 或 Web 客戶端代碼調用您的 Cloud Functions。

通過從擴展程序公開 HTTP 端點,您的擴展程序可以與任何支持 Webhook 的 Web 服務集成。借助可調用函數,安裝您的擴展程序的用戶可以使用 Firebase SDK 作為客戶端庫來訪問您的擴展程序實現的 API。

Firebase 服務觸發器

大多數 Firebase 產品都會發出可以觸發擴展程序的 Cloud Functions 的事件。

  • Analytics:當 Analytics 記錄事件時觸發函數
  • 應用程序分發:當應用程序分發觸發警報時觸發功能
  • 認證:用戶創建、刪除賬戶時觸發功能
  • Cloud Firestore:創建、更新或刪除頁面時觸發函數
  • 雲存儲:當對像上傳、歸檔或從存儲桶中刪除時觸發函數
  • Crashlytics:當 Crashlytics 觸發警報時觸發函數
  • 性能監控:當性能監控觸發警報時觸發功能
  • 實時數據庫:創建、更新或刪除數據時觸發函數
  • 遠程配置:參數更新時觸發功能
  • 測試實驗室:當測試實驗室觸發警報時觸發功能

Google Cloud 服務觸發器

擴展程序還可以包含觸發多個非 Firebase Google Cloud 服務的函數:

  • Cloud Pub/Sub :擴展可以包含在事件發佈到可配置的 Pub/Sub 主題時觸發的函數。
  • Cloud Scheduler :擴展可以包含按設定時間表運行的功能
  • 雲任務:擴展可以包含可以使用雲任務排隊的函數。 Firebase Extensions 使用此功能,讓您作為擴展作者編寫響應擴展“生命週期”事件的函數:首次安裝在項目中、升級到新版本以及重新配置。
  • Eventarc :擴展可以包含在事件發佈到可配置的 Eventarc 通道時觸發的函數;相反,擴展可以將其自己的事件發佈到 Eventarc 通道,以便用戶能夠定義自己的從擴展的事件觸發的函數。

從功能上支持

一旦擴展的雲功能被觸發,可能的集成範圍通常是開放的。以下是您可以通過雲函數執行的一些操作:

  • 讀取、寫入或以其他方式與使用受支持的 IAM 角色的任何FirebaseGoogle Cloud服務進行交互。
  • 使用任何提供 Web API 的第三方服務
  • 如果您提供 Web API,請使用您的自定義服務
  • 運行大多數 JavaScript 庫,包括TensorFlow.jsExpress.js等。

如何構建擴展

入門教程將引導您完成構建、測試和發布完整擴展的過程,並且是學習如何構建擴展的推薦方法。

開始使用

完成一次入門指南後,您可以參考各個主題指南,其中解釋了構建您自己的擴展所涉及的每項任務: