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 DatabaseCloud Firestore,讓系統維持在您想要的狀態。舉例來說,您可以監控寫入事件,並變更使用者訊息中特定字串的格式 (例如變更為全大寫)。運作方式如下:

說明下方所述應用程式流程的圖表

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

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

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

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

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

您可以利用 Cloud Functions 將需要大量資源的工作 (大量使用 CPU 或網路) 卸載至 Google 雲端,而非在使用者的裝置上執行,藉此改善應用程式的回應速度。舉例來說,您可以編寫函式來監聽上傳至 Cloud Storage 的圖片,將圖片下載至執行函式的執行個體,然後修改圖片並上傳回 Cloud Storage。您可以使用 sharpPillow 等工具,調整圖片大小、裁剪圖片或轉換圖片。

說明下方所述應用程式流程的圖表

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

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

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

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

與第三方服務和 API 整合

Cloud Functions 可透過呼叫及公開網頁 API,協助應用程式與其他服務搭配運作。舉例來說,用於協同開發的應用程式可以將 GitHub 提交內容發布至工作群組即時通訊室。

說明下方所述應用程式流程的圖表

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

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

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