Я пытаюсь отобразить строку из Firebase в текстовое представление.Мое приложение продолжает сбой при нажатии на кнопку get data
.Когда я отлаживаю свои коды, появляется следующая ошибка:
com.google.firebase.database.DatabaseException: невозможно преобразовать объект типа java.util.ArrayList в тип com.example.dijap537.firebasedatabase.Students
И эта строка вызывает ошибку
name2.setText(students.getStudentName());
Вот как я добавляю строки данных (Id, studentName, studentClass)
.
Вопрос, эти строки данных хранятся в виде массива?
public void addStudents() {
String studentName = name.getText().toString();
String studentClass = class_.getText().toString();
if (!TextUtils.isEmpty(studentName)&& !TextUtils.isEmpty(studentClass)) {
String id = "1";//databaseReference.push().getKey(); //get Unique ID
final Students students = new Students(id,studentName,studentClass); //send the data (send ID NAME AND CLASS)
databaseReference.child(id).setValue(students); //WRITE DATA TO FIREBASE
Toast.makeText(MainActivity.this,"added",Toast.LENGTH_LONG).show();
name.setText("");
class_.setText("");
}
else {
Toast.makeText(MainActivity.this,"Please Type The Students Name or Class",Toast.LENGTH_LONG).show();
}
}
Вот Students.java
на случай, если кому-то понадобится его увидеть.
public class Students {
private String studentId;
private String studentName;
private String StudentClass;
public Students(String studentName1) { }
public Students(String studentId, String studentName, String studentClass) {
this.studentId = studentId;
this.studentName = studentName;
this.StudentClass = studentClass;
}
public String getStudentId() {
return studentId;
}
public String getStudentName() {
return studentName;
}
public String getStudentClass() {
return StudentClass;
}
}
Ивот как я пытаюсь получить данные.Обратите внимание, я только пытаюсь получить строку studentName
.И здесь приложение имеет ошибку, упомянутую выше.Теперь я знаю, что это потому, что я пытаюсь отобразить массив с textView
, но, тем не менее, я хочу только извлечь и отобразить строку studentName
.Как правильно сделать это, если это возможно?
public void getStudents() {
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Students students = dataSnapshot.getValue(Students.class);
name2.setText(students.getStudentName());
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
Структура базы огня: