Android 如何序列化Firebase数据库的用户类并修复此错误?

Android 如何序列化Firebase数据库的用户类并修复此错误?,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我正在尝试从Firebase数据库的dataSnapshot检索更新的用户: mRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { User atualizedUser = dataSnapshot.getValue(User.class);

我正在尝试从Firebase数据库的dataSnapshot检索更新的用户:

mRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            User atualizedUser = dataSnapshot.getValue(User.class);
            fName.setText(atualizedUser.getFirstName());
            lName.setText(atualizedUser.getLastName());
            profilePhoto.setProfileId(atualizedUser.getProfileId());
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}
但我得到以下错误:

com.google.firebase.database.DatabaseException: Class bqs.bomqueso.Model.User is missing a constructor with no arguments
                                                            at com.google.android.gms.internal.zzbtg$zza.zze(Unknown Source)
                                                            at com.google.android.gms.internal.zzbtg$zza.zzaH(Unknown Source)
                                                            at com.google.android.gms.internal.zzbtg.zze(Unknown Source)
                                                            at com.google.android.gms.internal.zzbtg.zzb(Unknown Source)
                                                            at com.google.android.gms.internal.zzbtg.zza(Unknown Source)
                                                            at com.google.firebase.database.DataSnapshot.getValue(Unknown Source)
                                                            at bqs.bomqueso.Activities.MainActivity$3.onDataChange(MainActivity.java:92)
                                                            at com.google.android.gms.internal.zzbpx.zza(Unknown Source)
                                                            at com.google.android.gms.internal.zzbqx.zzZS(Unknown Source)
                                                            at com.google.android.gms.internal.zzbra$1.run(Unknown Source)
                                                            at android.os.Handler.handleCallback(Handler.java:746)
                                                            at android.os.Handler.dispatchMessage(Handler.java:95)
                                                            at android.os.Looper.loop(Looper.java:148)
                                                            at android.app.ActivityThread.main(ActivityThread.java:5443)
                                                            at java.lang.reflect.Method.invoke(Native Method)
                                                            at     com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
                                                            at     com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
这里是我的用户类(这不是一个子类,我在一个单独的文件中创建了它):


我在这里发现了类似的问题,但我还没有找到解决问题的方法,我希望你们能帮助我,提前谢谢你们

创建一个没有参数的构造函数作为

public User(){}如cricket所述并序列化

public class User implements Serializable {

private String firstName;
private String lastName;
private String profileId;

public User() {
}

public User(String fName, String lName, String id) {
    this.firstName = fName;
    this.lastName = lName;
    this.profileId = id;

}
public String getProfileId() {
    return profileId;
}

public void setProfileId(String id) {
    this.profileId = id;
}

public String getLastName() {
    return lastName;
}

public void setLastName(String lName) {
    this.lastName = lName;
}

public String getFirstName() {
    return firstName;
}

public void setFirstName(String fName) {
    this.firstName = fName;
}
}


如果这不符合要求,请记下Kotlin的要求,如果您对firebase使用的数据类如下所示

data class UserModel(
        var userName: String,
        var userType: Int
)
然后会出现如下错误

com.google.firebase.database.DatabaseException:UserModel没有 定义一个无参数构造函数。如果您正在使用ProGuard,请确保 这些构造函数没有被剥离

因此,您只需初始化它的值

data class UserModel(
        var userName: String = "",
        var userType: Int = 0
)

用户缺少没有参数的构造函数
。。。这与您的代码不匹配。。。您确实有
public User(){}
我不知道为什么会出现此错误,因为,正如您所说,我确实有一个没有参数的构造函数,有任何提示吗?尝试清理并重建项目?您复制了无参数构造函数。现在我纠正了我的错误,感谢您的反馈。这与问题中的代码有何不同,然后呢?如果“android.location.Address”是这个类中的一种属性,我不能改变这个类来实现零参数方法,我该怎么办?
data class UserModel(
        var userName: String = "",
        var userType: Int = 0
)