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

Flutter Android集成Firebase报错:Failed to turn object into JSON

解决Flutter Firebase交互时的JSON序列化空指针错误

你遇到的这个错误:

E/StorageHelpers(15925): Failed to turn object into JSON
E/StorageHelpers(15925): java.lang.NullPointerException: Attempt to invoke virtual method 'org.json.JSONObject com.google.firebase.auth.internal.zzm.zzbf()' on a null object reference

我之前也碰到过类似情况,结合你的依赖版本来看,这大概率是旧版本Firebase库的内部序列化bug或者缓存导致的状态异常,下面给你几个可行的解决方向:

1. 升级Firebase依赖版本

你当前使用的firebase_auth: ^0.5.3和cloud_firestore: ^0.7.0+2都是比较老旧的版本,这些版本存在已知的兼容性和内部序列化bug。建议升级到同一大版本的稳定版(确保所有Firebase相关依赖版本匹配,避免版本冲突),比如修改pubspec.yaml中的依赖:

firebase_auth: ^0.18.4+1
cloud_firestore: ^0.14.4

修改后执行flutter pub get,然后重新构建项目。

2. 清理项目缓存并重建

旧的构建缓存经常会导致这类奇怪的运行时错误,按以下步骤操作:

  • 执行命令:flutter clean
  • 手动删除项目根目录下的android/build和android/app/build文件夹
  • 执行flutter pub get重新获取依赖
  • 重启你的IDE,然后重新运行项目

3. 完善用户状态的空值判断

错误栈指向Auth相关的序列化,可能是你代码中直接使用了未判断是否为null的用户对象。在执行任何Firebase交互前,先检查当前用户是否存在:

final currentUser = FirebaseAuth.instance.currentUser;
if (currentUser != null) {
  // 在这里执行Firestore读写或Auth操作
  await FirebaseFirestore.instance.collection('users').doc(currentUser.uid).get();
} else {
  // 处理用户未登录的情况,比如跳转登录页
}

4. 验证Firebase配置文件

确保android/app/google-services.json文件配置正确,没有缺失Auth或Firestore相关的字段。可以重新从Firebase控制台下载最新的配置文件替换掉旧文件。


内容的提问来源于stack exchange,提问作者gaheinrichs

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:29:22