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

Android Firebase数据获取失败:String转int类型转换异常求助

解决Firebase数据解析时String转int的类型转换异常

这个DatabaseException的核心问题很明确:你Firebase数据库里的某个字段值是字符串类型,但对应的Java模型类里这个字段被定义成了int类型,Firebase在自动解析的时候没法把字符串转成整数,就抛出了这个错误。

我给你几个针对性的解决方案,按优先级排序:

1. 检查并修正Firebase中的数据类型

从MySQL转JSON上传到Firebase的过程中,很可能把原本的数字字段(比如MySQL的INT类型)转成了带引号的字符串(比如"30"而不是30)。你可以直接打开Firebase控制台,找到对应的节点,查看出错字段的格式:

  • 如果是带双引号的字符串,手动把引号去掉,改成纯数字格式;
  • 如果数据量很大,写个简单的Firebase Cloud Function或者本地脚本批量修正这些字段的类型。

2. 调整Java模型类的字段类型

如果业务上允许这个字段以字符串形式存储(比如可能包含非数字内容,或者有特殊格式),直接把模型类里的int字段改成String:

// 原来的模型类(会报错)
public class FamilyMember {
    private int age;
    // getter、setter和构造方法
}

// 修改后的模型类
public class FamilyMember {
    private String age;
    // 后续需要用数字时,手动转换(注意捕获NumberFormatException)
    public int getAgeAsInt() {
        try {
            return Integer.parseInt(age);
        } catch (NumberFormatException e) {
            // 处理转换失败的情况,比如返回默认值
            return 0;
        }
    }
}

3. 修正MySQL转JSON的转换逻辑

如果是转换工具的问题导致数字被转成字符串,检查你使用的转换工具设置:

  • 确保转换时保留MySQL字段的原始类型,比如INT类型转JSON时输出数字而非字符串;
  • 比如用mysqldump导出JSON的话,加上对应的参数保持类型;如果是自定义转换代码,确保数字类型字段不被额外加引号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:29:40