Cloud Functions 提供哪些功能?

Cloud Functions 提供開發人員存取 Firebase 和 Google Cloud 事件的權限,再加上可擴充的運算能力,以回應這些事件。雖然 Firebase 應用程式預期會以獨特的方式使用 Cloud Functions,以滿足其獨特的需求,但一般用途可能屬於以下範疇:

請查看您感興趣的各類別用途和範例,然後繼續參閱開始使用教學課程,或是驗證事件數據分析事件等特定使用指南。

偵測到有趣的活動時通知使用者

開發人員可利用 Cloud Functions,持續向使用者提供應用程式的相關資訊。例如,應用程式允許使用者追蹤彼此的應用程式內活動。每當使用者將自己新增為其他使用者的追蹤者時,都會在即時資料庫中執行寫入作業。然後,這個寫入事件可能會觸發函式來建立 Firebase 雲端通訊 (FCM) 通知,讓適當的使用者知道他們已獲得新追蹤者。

顯示如下的應用程式流程圖

  1. 在寫入追蹤者儲存的即時資料庫路徑時,函式會觸發函式。
  2. 這個函式會撰寫透過 FCM 傳送的訊息。
  3. FCM 會傳送通知訊息至使用者的裝置。

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

其他有趣的通知用途

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

執行資料庫清理和維護

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

顯示如下的應用程式流程圖

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

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

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

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

在雲端 (而非應用程式) 執行大量工作

您可以利用 Cloud Functions 將耗用大量資源的 Google 雲端作業卸載至 Google 雲端資源耗用大量資源的工作,而不必在使用者的裝置中執行,從而提高應用程式的回應能力。例如,您可以編寫函式來監聽將圖片上傳至 Cloud Storage、將映像檔下載至執行函式的執行個體,加以修改,然後再將其上傳至 Cloud Storage。您所做的修改可能包括調整大小、裁剪,或是利用放大波蘭等工具轉換圖片。

顯示如下的應用程式流程圖

  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. 透過 GitHub Webhook API 觸發 HTTPS 函式。
  3. 這個函式會將修訂通知傳送至團隊 Slack 頻道。

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

  • 使用 Google Cloud Vision API 分析上傳的圖片並加上標記。
  • 使用 Google 翻譯服務翻譯訊息。
  • 使用自訂驗證登入使用者。
  • 將要求傳送至即時資料庫寫入作業的 Webhook。
  • 針對即時資料庫元素啟用全文搜尋功能。
  • 處理使用者的款項。
  • 為通話和簡訊建立自動回覆。
  • 使用 Google 助理建立聊天機器人。