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