Cloud Functions for Firebase 中的实验性 Dart 支持可让您使用 Flutter 和 Dart 构建全栈应用。使用新的 Firebase Admin Dart SDK 与其他 Firebase 服务进行通信。
如需开始使用 Dart 函数,请完成本指南中的设置任务,然后继续探索 Dart HTTP 函数和可调用函数。
前提条件
- Dart SDK 3.9 或更高版本
- Firebase CLI(版本 15.15.0 或更高版本)
检查您是否拥有支持 Cloud Functions for Firebase 中 Dart 的 Firebase CLI 版本(使用 --version 标志):
`firebase --version`
在 Firebase CLI 中启用实验
firebase experiments:enable dartfunctions
初始化您的项目
- 跑步:
bash firebase init functions - 选择 Dart 作为您的语言。
- 当系统询问“您现在要安装依赖项吗?”时,回答“是”。
查看函数代码
在 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 不会将源代码上传到 Cloud Build 中进行构建,而是在开发机器上运行 Dart 编译步骤,并将生成的二进制文件直接上传到 Cloud Run 函数。
部署完成后,您会看到类似 Function URL
(hello-world(us-central1)): https://hello-world-<random-hash>.<region>.run.app 的日志行
在浏览器中加载该网址,以调用新部署的 Dart 函数。
后续步骤
- 设置配置选项,例如实例数下限。
- 详细了解 HTTP 函数和可调用函数。
- 按照 Dart Functions Codelab 中的说明操作Dart Functions Codelab
- 使用实验性 Dart Admin SDK 从函数中与其他 Firebase 服务(例如 Cloud Firestore)进行交互
- 除了
onRequestHTTP 函数之外,您还可以尝试使用onCall示例或onCall具有流式传输功能的示例,直接从应用调用函数(请注意有关调用方法的特殊限制)。
限制
onCall触发器可以部署,但无法通过 httpsCallable 等方法从客户端 SDK 调用,这些方法通过名称识别函数。您可以改为使用 httpsCallableFrom网址 等方法,并传递函数的完整 Cloud Run 网址。- 其他触发器(例如 Firestore 触发器)可以在本地模拟器套件中运行,但无法部署。
- 在实验性版本发布期间,Firebase 控制台不会显示 Dart 函数。您可以在 Cloud 控制台的 Cloud Run 函数页面中查看 Dart 函数。
如果您在使用 Dart 函数时发现问题,建议您向团队发送报告,帮助我们改进和扩展实验性 Dart SDK。