Cloud Functions 可讓開發人員存取 Firebase 和 Google Cloud 事件,並提供可調整的運算能力,以便因應這些事件執行程式碼。雖然 Firebase 應用程式預期會以獨特的方式使用 Cloud Functions 來滿足其特殊需求,但一般用途可能會落在以下幾個領域:
請查看您感興趣的每個類別的用例和範例,然後繼續參閱入門教學課程,或參閱驗證事件、分析事件等特定操作說明指南。
在發生有趣事件時通知使用者
開發人員可以使用 Cloud Functions,讓使用者持續參與應用程式,並掌握相關資訊。舉例來說,假設有個應用程式可讓使用者在應用程式中追蹤彼此的活動。每當使用者將自己加入其他使用者的追蹤者清單時,Realtime Database 就會發生寫入作業。接著,這項寫入事件可觸發函式,建立 Firebase Cloud Messaging (FCM) 通知,讓適當的使用者知道自己獲得了新的追蹤者。
- 這個函式會在寫入儲存追蹤者的 Realtime Database 路徑時觸發。
- 這個函式會透過 FCM 撰寫要傳送的訊息。
- FCM 會將通知訊息傳送至使用者的裝置。
如要查看可運作的程式碼,請參閱 GitHub 中的程式碼範例:
- Node.js:fcm-notifications
- Python:fcm-notifications
其他有趣的通知用途
- 向訂閱電子報的使用者傳送確認電子郵件。
- 使用者完成註冊後,傳送歡迎電子郵件。
- 在使用者建立新帳戶時傳送簡訊確認。
執行資料庫清理和維護作業
透過 Cloud Functions 資料庫事件處理,您可以根據使用者行為修改 Realtime Database 或 Cloud Firestore,讓系統維持在您想要的狀態。舉例來說,您可以監控寫入事件,並變更使用者訊息中特定字串的格式 (例如變更為全大寫)。運作方式如下:
- 該函式的資料庫事件處理常式會監聽特定路徑上的寫入事件,並擷取包含訊息文字的事件資料。
- 這個函式會處理文字,將字串轉換為大寫。
- 函式會將更新後的文字寫回資料庫。
如要查看可運作的程式碼,請參閱 GitHub 中的程式碼範例:
- Node.js:uppercase-rtdb
- Python:uppercase-rtdb
其他資料庫清理和維護用途
- 從 Realtime Database 中清除已刪除使用者的內容。
- 限制 Firebase 資料庫中的子節點數量。
- 追蹤 Realtime Database 清單中的元素數量。
- 將資料從 Realtime Database 複製到 Google Cloud BigQuery。
- 將文字轉換成表情符號。
- 管理資料庫記錄的運算中繼資料。
在雲端執行密集工作,而非在應用程式中執行
您可以利用 Cloud Functions 將需要大量資源的工作 (大量使用 CPU 或網路) 卸載至 Google 雲端,而非在使用者的裝置上執行,藉此改善應用程式的回應速度。舉例來說,您可以編寫函式來監聽上傳至 Cloud Storage 的圖片,將圖片下載至執行函式的執行個體,然後修改圖片並上傳回 Cloud Storage。您可以使用 sharp 或 Pillow 等工具,調整圖片大小、裁剪圖片或轉換圖片。
- 圖片檔案上傳至 Cloud Storage 時,函式會觸發。
- 這個函式會下載圖片,並建立縮圖版本。
- 這個函式會將縮圖位置寫入資料庫,方便用戶端應用程式找到並使用該位置。
- 這個函式會將縮圖上傳回 Cloud Storage 的新位置。
- 應用程式會下載縮圖連結。
如需圖片處理範例的逐步說明,請參閱處理 Cloud Storage 事件指南。
Firebase 雲端中其他批次工作範例
與第三方服務和 API 整合
Cloud Functions 可透過呼叫及公開網頁 API,協助應用程式與其他服務搭配運作。舉例來說,用於協同開發的應用程式可以將 GitHub 提交內容發布至工作群組即時通訊室。
- 使用者將修訂版本推送至 GitHub 存放區。
- HTTPS 函式會透過 GitHub webhook API 觸發。
- 這個函式會將提交通知傳送至團隊的 Slack 頻道。
與第三方服務和 API 整合的其他方式
- 使用 Google Cloud Vision API 分析及標記上傳的圖片。
- 使用 Google 翻譯翻譯訊息。
- 使用自訂驗證登入使用者。
- 在 Realtime Database 寫入時,將要求傳送至 webhook。
- 啟用 Realtime Database 元素的全文搜尋功能。
- 處理使用者的款項。
- 建立電話和簡訊的自動回應。
- 使用 Google 助理建立聊天機器人。