Как получить список из базы данных Firebase в реальном времени? - PullRequest
0 голосов
/ 18 января 2019

Я занимаюсь разработкой приложения посещаемости. Я хочу получить список студентов с количеством подарков и заполнить его в виде списка.

Я попробовал приведенный ниже код, но получаю количество подарков от одного конкретного студента.

 DatabaseReference ref = 
 FirebaseDatabase.getInstance().getReference().child("Students 
 Attendance").child(selectedItem).child(id).child(subject);
 ref.addListenerForSingleValueEvent(new ValueEventListener() {
  @Override
  public void onDataChange(DataSnapshot dataSnapshot) {
        if (dataSnapshot.getValue() != null) {

        Userlist.add(dataSnapshot.getValue().toString());
        addStudents(Userlist);
                      }else {
          Toast.makeText(getApplicationContext(), "****NO Record 
          FOUND****", Toast.LENGTH_LONG).show();
                      }
                  }

Я ожидаю вывод в виде списка студентов с количеством подарков, заполненных в виде списка.

Моя базовая структура

Я хочу такой результат

Ответы [ 2 ]

0 голосов
/ 19 января 2019
     ref.addChildEventListener(new ChildEventListener() {
           @Override
           public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            if (dataSnapshot.exists()) {                      
             String value = dataSnapshot.getValue().toString();
             String key = dataSnapshot.getKey();
             String record = key + ":              " + value;
                        Userlist.add(record);
                        addStudents(Userlist);
         }

У меня это сработало.

0 голосов
/ 18 января 2019

Поскольку вы создаете приложение, которое подсчитывает количество подарков конкретного студента. Вы можете сделать это так:

Сначала вы можете установить значение для хранения в базе данных как: mFirebaseDatabaseReference.push().setValue(new String[]{student_name,attendance})

Хранит данные как: - Сэм, 70 и Mike, 75

Теперь восстановите эти данные, используя ChildEventListener:

mChildEventListener = new ChildEventListener() {
   @Override
   public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
     String data = dataSnapshot.getValue();
     mMyAdapter.add(data);
);

Единственное, чего здесь не следует, это то, что вам необязательно указывать student_id, поскольку мы используем здесь метод push(), чтобы он давал каждому ребенку новый идентификатор, чтобы нам не приходилось беспокоиться о нарушении данных. для студентов с таким же именем или отметками.

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