Как получить конкретный дочерний ключ из базы данных Firebase Runtime и установить данные на Android - PullRequest
0 голосов
/ 05 июня 2019

У меня есть DataSnapshot со всеми ключами базы данных времени выполнения Firebase.Вот мой журнал: -

E / MYDATA: DataSnapshot {ключ = доход, значение = {-LgaZl_ojnqmvgpPe48D = {дата = 2019-06-05, созданAt = 2019-06-05 13:08: 22, сумма = 333,00, заголовок = jjhj, с = ггггг, время = 13: 08, тип = Банк ICICI, обновлено: = 2019-06-05 13:08:22}}}

E / MYDATA: DataSnapshot {key = создалAt, значение = 2019-06-05 11:06:18}

E / MYDATA: DataSnapshot {ключ = электронная почта, значение = abc@gmail.com}

Здесь мой LOG = MYDATA, я пытаюсь key = Income рендеринг данных в Recyclerview

Вот мой код:

  String id = FirebaseAuth.getInstance().getCurrentUser().getUid();

    DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Users").child(id);

    ref.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

            Log.e("MYDATA", "" + dataSnapshot);

        }

        @Override
        public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

        }

        @Override
        public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {

        }

        @Override
        public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });

и вот мойСтруктура базы данных: -

Изображение базы данных

enter image description here

Смотреть это изображение

1 Ответ

2 голосов
/ 05 июня 2019

Если вы хотите получить записи «Пространство», измените ref на

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Users").child(id).child("Expanse");

После изменения добавьте ValueEventListener или ChildEventListener к ref.

Вы использовали ChildEventListener, поэтому в onChildAdded из ChildEventListener вы можете получить данные из Firebase, например,

Expanse expanse = dataSnapshot.getValue(Expanse.class);
list.add(expanse);

Приведенный выше код будет входить в onChildAdded из ChildEventListener, где Expanse - ваш класс POJO, в котором у вас есть геттеры и сеттеры для суммы, заголовка, даты и т. Д.

Затем вы должны добавить этот недавно полученный объект expanse в List, а затем уведомить ваш RecyclerViewAdapter, что данные были изменены.

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