您可以使用雲端函數做什麼?

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 將資源密集工作(大量 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 可以透過呼叫和公開 Web API 來幫助您的應用程式更好地與其他服務搭配使用。例如,用於協作開發的應用程式可以將 GitHub 提交發佈到工作小組聊天室。

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

  1. 用戶將提交推送到 GitHub 儲存庫。
  2. HTTPS 函數透過GitHub webhook API觸發。
  3. 此函數將提交通知傳送到團隊 Slack 頻道。

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

  • 使用 Google Cloud Vision API分析和標記上傳的圖像。
  • 使用 Google 翻譯翻譯訊息。
  • 使用自訂身份驗證來登入使用者。
  • 向即時資料庫寫入的 Webhook 發送請求。
  • 對即時資料庫元素啟用全文搜尋。
  • 處理用戶的付款。
  • 建立對電話和簡訊的自動回覆。
  • 使用 Google Assistant 建立聊天機器人。