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

Android应用数据可写入Firebase Realtime Database但点击按钮后崩溃求助

搞定Firebase写入后崩溃的问题

嘿,我从你的Logcat错误信息里直接揪出问题根源了:你的User类缺了个无参构造函数,这可是Firebase Realtime Database反序列化对象时的硬性要求哦。

为啥会崩?

Firebase把数据库里的JSON转成Java对象的时候,得先调用类的无参构造函数创建实例,再通过反射把字段值填进去。你现在的User类只写了带三个参数的构造函数,没给无参的,Firebase没法完成这个步骤,直接就抛出DatabaseException导致崩溃了。

怎么修?

改改你的User类,加上无参构造函数就行,顺带把字段改成private再加个getter(虽然Firebase能直接读public字段,但这是更规范的写法):

public class User {
    private String name;
    private String email;
    private String address;

    // Firebase必须要的无参构造函数
    public User() {
        // 空实现就行,不用写内容
    }

    // 你原来的带参构造函数
    public User(String name, String email, String address) {
        this.name = name;
        this.email = email;
        this.address = address;
    }

    // 推荐加上getter方法
    public String getName() {
        return name;
    }

    public String getEmail() {
        return email;
    }

    public String getAddress() {
        return address;
    }
}

额外提醒

开发阶段可以先把Firebase数据库规则设成允许读写(方便调试):

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

不过上线前一定要改成安全规则,比如只让认证过的用户访问,别留安全隐患哈。

改完之后再试试,保存数据后应用就不会崩溃啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:16:27