Необходимо убедиться, что имена свойств JSON в базе данных и имена вашего класса Java точно совпадают. Прямо сейчас ваш класс BiodataModel
имеет свойство (JavaBean) alamat
, а база данных содержит свойство (JSON) Alamat
. Поскольку регистр первого символа отличается, Firebase не может найти подходящее свойство для вашего объекта при чтении данных из базы данных.
Как показал Питер, самое простое решение - сохранить один и тот же регистр между базой данных и кодом. Альтернативой является аннотирование вашего Java-кода правильной орфографией / регистром свойства JSON:
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;
}
}
Обратите внимание на то, что геттеры и сеттеры являются необязательными, и, кажется, здесь ничего не добавляют. Поскольку ваши поля уже общедоступны, вы также можете использовать этот более короткий класс:
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;
}