我试图在一个活动中写入数据,然后在另一个活动中读取它。我的写作部分正在工作。对于我的阅读部分,我试图将 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 {
...
}
添加回答
举报
0/150
提交
取消