Отображение данных из Firebase в TextView - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь отобразить строку из 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) {

        }
    });
}

Структура базы огня: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...