Java 从firebase数据库向FirebaseRecyclerAdapter显示时出错
我正在尝试将Firebase数据库中的数据显示到RecylerView,我将遵循本教程 当我运行此活动时。我得到这个错误 com.google.firebase.database.DatabaseException:找到两个getter或 属性区分大小写冲突的字段:alamat 我的结构Java 从firebase数据库向FirebaseRecyclerAdapter显示时出错,java,android,firebase,firebase-realtime-database,firebaseui,Java,Android,Firebase,Firebase Realtime Database,Firebaseui,我正在尝试将Firebase数据库中的数据显示到RecylerView,我将遵循本教程 当我运行此活动时。我得到这个错误 com.google.firebase.database.DatabaseException:找到两个getter或 属性区分大小写冲突的字段:alamat 我的结构 如何解决这个问题?在您的数据库中,您有属性:alamat带小写字母。但是在model类中,字段Alamat是大写的,两者应该是相同的 更改模型类中的字段: public String alamat; pub
如何解决这个问题?在您的数据库中,您有属性:
alamat
带小写字母。但是在model类中,字段Alamat
是大写的,两者应该是相同的
更改模型类中的字段:
public String alamat;
public String getAlamat() {
return alamat;
}
public void setAlamat(String alamat) {
this.alamat = alamat;
}
在数据库中,您有属性:
alamat
,小写。但是在model类中,字段Alamat
是大写的,两者应该是相同的
更改模型类中的字段:
public String alamat;
public String getAlamat() {
return alamat;
}
public void setAlamat(String alamat) {
this.alamat = alamat;
}
您需要确保数据库中JSON的属性名与Java类的属性名完全匹配。现在,您的
BiodataModel
类有一个(JavaBean)属性alamat
,而数据库包含一个(JSON)属性alamat
。由于第一个字符的大小写不同,Firebase从数据库读取数据时无法在对象上找到匹配的属性
正如Peter所展示的,最简单的修复方法是在数据库和代码之间保持完全相同的大小写。另一种方法是使用JSON属性的正确拼写/大小写注释Java代码:
public class BiodataModel {
public String Fullname,Email,NoTelp,Alamat;
public BiodataModel() {
}
@PropertyName("Fullname")
public String getFullname() {
return Fullname;
}
@PropertyName("Email")
public String getEmail() {
return Email;
}
@PropertyName("NoTelp")
public String getNoTelp() {
return NoTelp;
}
@PropertyName("Alamat")
public String getAlamat() {
return Alamat;
}
@PropertyName("Fullname")
public void setFullname(String Fullname) {
this.Fullname = Fullname;
}
@PropertyName("Email")
public void setEmail(String Email) {
this.Email = Email;
}
@PropertyName("NoTelp")
public void setNoTelp(String NoTelp) {
this.NoTelp = NoTelp;
}
@PropertyName("Alamat")
public void setAlamat(String Alamat) {
this.Alamat = Alamat;
}
}
顺便注意,getter和setter是可选的,在这里似乎没有添加太多内容。因为您的字段已经是公共的,所以您也可以使用更短的类:
public class BiodataModel {
public String Fullname;
public String Email;
public String NoTelp;
public String Alamat;
}
因为这里的字段名已经与JSON属性名精确匹配,所以不需要对它们进行注释。但是,如果这里有不匹配的情况,您可以只注释该字段以使其重新工作。例如:
public class BiodataModel {
@PropertyName("FullName")
public String Fullname;
public String Email;
public String NoTelp;
public String Alamat;
}
您需要确保数据库中JSON的属性名与Java类的属性名完全匹配。现在,您的
BiodataModel
类有一个(JavaBean)属性alamat
,而数据库包含一个(JSON)属性alamat
。由于第一个字符的大小写不同,Firebase从数据库读取数据时无法在对象上找到匹配的属性
正如Peter所展示的,最简单的修复方法是在数据库和代码之间保持完全相同的大小写。另一种方法是使用JSON属性的正确拼写/大小写注释Java代码:
public class BiodataModel {
public String Fullname,Email,NoTelp,Alamat;
public BiodataModel() {
}
@PropertyName("Fullname")
public String getFullname() {
return Fullname;
}
@PropertyName("Email")
public String getEmail() {
return Email;
}
@PropertyName("NoTelp")
public String getNoTelp() {
return NoTelp;
}
@PropertyName("Alamat")
public String getAlamat() {
return Alamat;
}
@PropertyName("Fullname")
public void setFullname(String Fullname) {
this.Fullname = Fullname;
}
@PropertyName("Email")
public void setEmail(String Email) {
this.Email = Email;
}
@PropertyName("NoTelp")
public void setNoTelp(String NoTelp) {
this.NoTelp = NoTelp;
}
@PropertyName("Alamat")
public void setAlamat(String Alamat) {
this.Alamat = Alamat;
}
}
顺便注意,getter和setter是可选的,在这里似乎没有添加太多内容。因为您的字段已经是公共的,所以您也可以使用更短的类:
public class BiodataModel {
public String Fullname;
public String Email;
public String NoTelp;
public String Alamat;
}
因为这里的字段名已经与JSON属性名精确匹配,所以不需要对它们进行注释。但是,如果这里有不匹配的情况,您可以只注释该字段以使其重新工作。例如:
public class BiodataModel {
@PropertyName("FullName")
public String Fullname;
public String Email;
public String NoTelp;
public String Alamat;
}
请检查我的最新问题。我正在添加PictureEyes,您需要使用小写的alamat,所有其他字段也应该是小写的Hmm,您知道我在哪里有小写的alamat
?我对这个很陌生。很抱歉,您没有,但是您需要遵循javabean约定,并且必须使用小写字段。所以像firstName一样,alamat避免了这个错误。在这里也检查一下:请检查我更新的问题。我正在添加PictureEyes,您需要使用小写的alamat,所有其他字段也应该是小写的Hmm,您知道我在哪里有小写的alamat?我对这个很陌生。很抱歉,您没有,但是您需要遵循javabean约定,并且必须使用小写字段。与firstName一样,alamat可避免此错误。请在此处检查: