Я боролся с этой проблемой около трех дней. Или, может быть, я не понимаю, кто концепция addValueEventListener()
. У меня есть класс POJO.
public class InstantMessage {
private String UID;
private String email;
private String password;
private String type;
public InstantMessage() {
}
public InstantMessage(String newUID, String newEmail, String newPassword, String newType) {
UID = newUID;
email = newEmail;
password = newPassword;
type = newType;
}
public void setUID(String newUID) {
UID = UID;
}
public void setEmail(String newEmail) {
email = newEmail;
}
public void setPassword(String newPassword) {
password = newPassword;
}
public void setType(String newType) {
type = newType;
}
public String getUID() {
return UID;
}
public String getEmail()
{
return email;
}
public String getPassword()
{
return password;
}
public String getType()
{
return type;
}
}
Чего я на самом деле пытаюсь добиться, так это выбрать тип узла из базы данных Firebase. Моя база данных:
mDatabaseReference = FirebaseDatabase.getInstance().getReference().child("Users");
Я попытался перебрать объект Datasnapshot, но мне все равно не повезло.
Вот что я пытаюсь сделать.
private void showData(){
mDatabaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
InstantMessage iM1 = dataSnapshot.getValue(InstantMessage.class);
//System.out.println("The type is:" + iM1.getType());
sampleUser.add(iM1);
studentAdapter.notifyDataSetChanged();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
Как вы можете видеть в журналах, Datasnapshot получает объект, который я ищу, но значения равны нулю.
Мне очень жаль, если это просто вопрос новичка, но я изо всех сил стараюсь выучить его. Любая помощь будет принята с благодарностью.