Cloud Functions 提供哪些功能?

Cloud Functions 可讓開發人員存取 Firebase 和 Google Cloud 事件,並提供可擴充的運算能力,以便執行程式碼來回應這些事件。雖然 Firebase 應用程式預期會以獨特的方式使用 Cloud Functions,以滿足其獨特的需求,但一般用途可能屬於以下領域:

請查看您感興趣的各個類別的用途和範例,然後前往「入門」教學課程,或參閱驗證事件、數據分析事件等特定使用指南。

在發生有趣事件時通知使用者

開發人員可以使用 Cloud Functions 讓使用者持續參與,並隨時掌握應用程式的相關資訊。舉例來說,假設某個應用程式可讓使用者追蹤彼此在應用程式中的活動。每當使用者將自己新增為另一位使用者的追蹤者時,系統就會在 Realtime Database 中執行寫入作業。接著,這項寫入事件可觸發函式,建立 Firebase Cloud Messaging (FCM) 通知,讓相關使用者知道自己獲得了新的追蹤者。

顯示下方所述應用程式流程的圖表

  1. 函式會在寫入儲存追蹤者的 Realtime Database 路徑時觸發。
  2. 函式會撰寫要透過 FCM 傳送的訊息。
  3. FCM 會將通知訊息傳送至使用者的裝置。

如要查看可運作的程式碼,請參閱 GitHub 中的程式碼範例:

其他有趣的通知用途

  • 傳送確認電子郵件給訂閱電子報的使用者。
  • 在使用者完成註冊時傳送歡迎電子郵件。
  • 在使用者建立新帳戶時傳送簡訊確認。

執行資料庫清理和維護作業

透過 Cloud Functions 資料庫事件處理,您可以根據使用者行為修改 Realtime Database 或 Cloud Firestore,讓系統保持在所需狀態。舉例來說,您可以監控寫入事件,並變更使用者訊息中特定字串的格式 (例如全部改為大寫)。運作方式如下:

顯示下方所述應用程式流程的圖表

  1. 函式的資料庫事件處理常式會監聽特定路徑上的寫入事件,並擷取包含訊息文字的事件資料。
  2. 函式會處理文字,將字串轉換為大寫。
  3. 函式會將更新後的文字寫回資料庫。

如要查看可運作的程式碼,請參閱 GitHub 中的程式碼範例:

其他資料庫清理和維護用途

  • 從 Realtime Database 清除已刪除使用者的內容。
  • 限制 Firebase 資料庫中的子節點數量。
  • 追蹤 Realtime Database 清單中的元素數量。
  • 將資料從 Realtime Database 複製到 Google Cloud BigQuery。
  • 將文字轉換為表情符號。
  • 管理資料庫記錄的運算中繼資料。

在雲端執行密集工作,而非在應用程式中

您可以利用 Cloud Functions 將耗用大量資源的工作 (大量 CPU 或網路) 卸載至 Google Cloud,而不是在使用者裝置上執行,進而提升應用程式的回應速度。舉例來說,您可以編寫函式來監聽上傳至 Cloud Storage 的圖片、將圖片下載至執行函式的執行個體、修改圖片,然後將圖片上傳回 Cloud Storage。修改方式包括使用 sharp 或 Pillow 等工具調整大小、裁剪或轉換圖片。

顯示下方所述應用程式流程的圖表

  1. 圖片檔上傳至 Cloud Storage 時,系統會觸發函式。
  2. 函式會下載圖片,並建立縮圖版本。
  3. 函式會將縮圖位置寫入資料庫,讓用戶端應用程式可以找到並使用該縮圖。
  4. 函式會將縮圖上傳回 Cloud Storage 的新位置。
  5. 應用程式會下載縮圖連結。

如需圖片處理範例的逐步操作說明,請參閱處理 Cloud Storage 事件指南。

Firebase 雲端中其他批次工作的範例

  • 定期刪除未使用的 Firebase 帳戶 Node.js | Python。
  • 自動備份上傳的圖片 Node.js | Python。
  • 大量傳送電子郵件給使用者。
  • 定期匯總及摘要資料。
  • 處理待處理工作佇列。

與第三方服務和 API 整合

Cloud Functions 可呼叫及公開 Web API,協助應用程式與其他服務更有效地搭配運作。舉例來說,用於協作開發的應用程式可以將 GitHub 修訂版本發布到工作群組聊天室。

顯示下方所述應用程式流程的圖表

  1. 使用者將修訂版本推送至 GitHub 存放區。
  2. HTTPS 函式會透過 GitHub Webhook API 觸發。
  3. 函式會將修訂版本通知傳送至團隊的 Slack 頻道。

與第三方服務和 API 整合的其他方式

  • 使用 Google Cloud Vision API 分析及標記上傳的圖片。
  • 使用 Google 翻譯翻譯訊息。
  • 使用自訂驗證登入使用者。
  • 在 Realtime Database 寫入時,傳送要求至 Webhook。
  • 對 Realtime Database 元素啟用全文搜尋。
  • 處理使用者款項。
  • 建立電話和簡訊的自動回覆。
  • 使用 Google 助理建立聊天機器人。