擴展發布者概述

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等。

如何建構擴充

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

開始使用

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