Cloud Functions for Firebase 的實驗性 Dart 支援功能可讓您使用 Flutter 和 Dart 建構全端應用程式。使用新的 Firebase Admin Dart SDK 與其他 Firebase 服務通訊。
如要開始使用 Dart 函式,請完成本指南中的設定工作,然後繼續探索 Dart HTTP 和可呼叫函式。
事前準備
- Dart SDK 3.9 以上版本
- Firebase CLI (15.15.0 以上版本)
確認您使用的 Firebase CLI 版本支援 Cloud Functions for Firebase 中的 Dart,並使用 --version 旗標:
`firebase --version`
在 Firebase CLI 中啟用實驗
firebase experiments:enable dartfunctions
初始化您的專案
- 執行:
bash firebase init functions - 選取 Dart 做為語言。
- 系統詢問「Do you want to install dependencies now?」(是否要立即安裝依附元件?) 時,請回答「Yes」。
查看函式程式碼
在 functions/bin/server.dart (或您的進入點) 中查看生成的程式碼。這段程式碼示範簡單的 HTTP 函式。
請注意,程式碼範例會使用 HttpsOptions 建構函式,將 helloWorld 函式的執行個體數量上限設為 10。如要進一步瞭解執行階段選項,請參閱「設定執行階段選項」。
在本機測試
firebase emulators:start
Local Emulator Suite 啟動後,您會看到類似 functions http function initialized
(http://127.0.0.1:5001/<url>) 的記錄行。在瀏覽器中載入該網址,即可呼叫本機模擬的 Dart 函式。
如果您編輯 Dart 程式碼,Firebase Local Emulator Suite 會偵測到變更,並自動重新載入函式。
部署
firebase deploy --only functions
Dart 的部署程序與 Node.js 或 Python 函式不同。Firebase CLI 會在本機開發電腦上執行 Dart 編譯步驟,並將產生的二進位檔直接上傳至 Cloud Run 函式,而不是上傳原始碼至 Cloud Build 進行建構。
部署完成後,您會看到類似 Function URL
(hello-world(us-central1)): https://hello-world-<random-hash>.<region>.run.app 的記錄行
在瀏覽器中載入該網址,即可呼叫新部署的 Dart 函式。
後續步驟
- 設定設定選項,例如執行個體數量下限。
- 進一步瞭解 HTTP 函式和可呼叫函式。
- 請按照 Dart Functions 程式碼研究室 Dart Functions 程式碼研究室的指示操作。
- 使用實驗性 Dart Admin SDK 與其他 Firebase 服務 (例如 Cloud Firestore) 互動
- 除了
onRequestHTTP 函式,您也可以試用onCall範例或onCall串流範例,直接從應用程式呼叫函式 (請注意呼叫方法方面的特殊限制)。
限制
onCall觸發程序可以部署,但無法透過用戶端 SDK 呼叫,例如使用 httpsCallable 等方法 (這些方法會依名稱識別函式)。請改用 httpsCallableFromURL 等方法,並傳遞函式的完整 Cloud Run 網址。- 其他觸發條件 (例如 Firestore 觸發條件) 可在本機模擬器套件中執行,但無法部署。
- 在實驗版發布期間,Firebase 控制台不會顯示 Dart 函式。您可以在Cloud控制台的Cloud Run函式頁面中查看 Dart 函式。
如果您在使用 Dart 函式時發現問題,建議向團隊傳送報告,協助我們改善及擴充實驗性 Dart SDK。