开始使用实验性 Dart SDK

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

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

前提条件

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

 `firebase --version`

Firebase CLI 中启用实验

firebase experiments:enable dartfunctions

初始化您的项目

  1. 运行:

    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 会在您的开发机器上运行 Dart 编译步骤,并将生成的二进制文件直接上传到 Cloud Run 函数,而不是上传源代码以在 Cloud Build 中构建。Firebase

部署完成后,您会看到类似 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 Run 控制台的 Cloud 函数页面中查看 Dart 函数。

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