You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Dart编写Firebase云函数时遇‘JSON未找到’错误求助

解决Dart转译Firebase云函数时的Member not found: 'JSON'错误

问题根源

这个错误是由于Dart SDK版本与旧依赖包不兼容导致的:你当前使用的Dart SDK(大概率是2.12+的空安全版本)与front_end旧包的API冲突——旧包使用了ContentType.JSON常量,而新版本Dart中该常量已改为小写的ContentType.json。同时你依赖的build_node_compilers已废弃,无法适配新版build_runner,进一步加剧了版本冲突。

解决方案

1. 锁定兼容的Dart SDK版本

修改pubspec.yaml的environment字段,指定非空安全的稳定版SDK,适配旧依赖:

environment:
  sdk: '>=2.10.0 <2.12.0'

2. 清理缓存并重新拉取依赖

执行命令彻底清理缓存,确保获取与SDK匹配的依赖版本:

dart pub cache clean
dart pub get

3. 调整构建依赖版本

将dev_dependencies改为以下兼容组合:

dev_dependencies:
  build_runner: ^1.10.0
  build_node_compilers: ^0.3.1

这是build_node_compilers最后一个支持旧SDK的版本,与build_runner 1.10.x完全兼容。

4. 重新执行构建命令

dart run build_runner build --output=build

备选方案:跳过build_runner直接编译

如果上述步骤仍有问题,可直接用dart2js编译Dart文件,绕开构建链:

dart2js -O2 -o build/index.dart.js lib/index.dart

-O2参数开启优化,生成适合生产环境的JS文件。

长期维护建议

旧版firebase_functions_interop已停止更新,build_node_compilers也已废弃,建议迁移到Firebase官方Dart云函数SDK,该SDK支持最新Dart版本与空安全,且有官方维护,避免后续版本兼容问题。

内容的提问来源于stack exchange,提问作者Karolina Hagegård

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 00:20:50