为了账号安全,请及时绑定邮箱和手机立即绑定

Firebase 数据库:尽管有“无参数构造函数”错误

Firebase 数据库:尽管有“无参数构造函数”错误

慕森卡 2021-11-17 16:57:26
我试图在一个活动中写入数据,然后在另一个活动中读取它。我的写作部分正在工作。对于我的阅读部分,我试图将 getValue 与我编写的类的参数一起使用。但我不断收到此错误:com.google.firebase.database.DatabaseException: ozhan.climb.MainActivity$User 类未定义无参数构造函数。如果您使用 ProGuard,请确保这些构造函数没有被剥离。我在getValue()中使用的类:class User {    public String  Server,            NeededRole,            Role,            SummonerName;    User() {}    public String get_Server() {        return Server;    }    public String get_NeededRole() {        return NeededRole;    }    public String get_Role() {        return Role;    }    public String get_SummonerName() {        return SummonerName;    }}这是应该获取数据的代码:public void getUserData(){    final TextView tv_sumName = findViewById(R.id.tv_sumName),             tv_neededRole = findViewById(R.id.tv_neededrole),             tv_userRole = findViewById(R.id.tv_userrole),             tv_server = findViewById(R.id.tv_server);    final String uid = Objects.requireNonNull(mAuth.getCurrentUser()).getUid();    DatabaseReference usersDataRef = databaseRef.child("Users").child(uid);    usersDataRef.addValueEventListener(new ValueEventListener() {        @Override        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {            User u = dataSnapshot.getValue(User.class);            if (u != null) {                tv_server.setText(u.Server);                tv_neededRole.setText(u.NeededRole);                tv_userRole.setText(u.Role);                tv_sumName.setText(u.SummonerName);            }        }        @Override        public void onCancelled(@NonNull DatabaseError databaseError) {        }    });}
查看完整描述

1 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

异常表示您的类是ozhan.climb.MainActivity$User- 即,它是MainActivity.


内部类需要一个外部类的实例来构造。这不适用于 Firebase 数据库,尽管错误消息肯定可以改进。


您的 User 类应该是一个static类,它没有相同的要求只存在于包含类的实例中:


static class User {

  ...

}


查看完整回答
反对 回复 2021-11-17
  • 1 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信