开始使用实验性 Dart SDK

Cloud Functions for Firebase 中的实验性 Dart 支持可让您使用 Flutter 和 Dart 构建全栈应用。使用新的 Firebase Admin Dart SDK 与其他 Firebase 服务进行通信。

如需开始使用 Dart 函数,请完成本指南中的设置任务,然后继续探索 Dart HTTP 函数和可调用函数。

前提条件

检查您是否拥有支持 Cloud Functions for Firebase 中 Dart 的 Firebase CLI 版本(使用 --version 标志):

 `firebase --version`

Firebase CLI 中启用实验

firebase experiments:enable dartfunctions

初始化您的项目

  1. 跑步: bash firebase init functions
  2. 选择 Dart 作为您的语言。
  3. 当系统询问“您现在要安装依赖项吗?”时,回答“是”。

查看函数代码

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 函数。

后续步骤

限制

  • onCall 触发器可以部署,但无法通过 httpsCallable 等方法从客户端 SDK 调用,这些方法通过名称识别函数。您可以改为使用 httpsCallableFrom网址 等方法,并传递函数的完整 Cloud Run 网址。
  • 其他触发器(例如 Firestore 触发器)可以在本地模拟器套件中运行,但无法部署。
  • 在实验性版本发布期间,Firebase 控制台不会显示 Dart 函数。您可以在 Cloud 控制台Cloud Run 函数页面中查看 Dart 函数。

如果您在使用 Dart 函数时发现问题,建议您向团队发送报告,帮助我们改进和扩展实验性 Dart SDK。