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