Вложенный список объектов в Firebase Android - PullRequest
0 голосов
/ 04 июля 2018

https://ibb.co/ieRwsJ

https://ibb.co/c4xmsJ

https://ibb.co/d8gJ6d

это моя структура базы данных.

order
  key
    address
    cart node with 3 childs
    phone
    total etc

Я перепробовал все способы попасть в созданный объект корзины, но когда он выдает мне ошибку и когда я пытаюсь получить его в обзоре переработчика, он просто возвращает первому дочернему элементу «0» больше ничего. Я попытался использовать хэш-карты и массивы, и я также дал адаптер для просмотра повторного просмотра, чтобы показать данные.

//this is my pojo below.

public class Order {

private String phone;
private String address;
private String time;
private String date;
private String message;
private String total;
private HashMap<String,Cart> cart;
private String tax;
private String status;

public Order() {
}

//getter and setter


//code for looping over the child node
  orderDB.child("orders").child(currentUser).addValueEventListener(new 
  ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            if (dataSnapshot.exists()) {
                for (DataSnapshot orderSnapshot : dataSnapshot.getChildren()) {
                    Order order = orderSnapshot.getValue(Order.class);
                    onGoingOrderList.add(order);                   
                    rvOnGoingOrders.setAdapter(onGoingOrderadapter);

                }

            }
        }

//code for my adapter
public void onBindViewHolder(OngoingOrderViewholder holder, int position) {
   holder.tvProductnameOngoingOrders.setText(onGoingOrderArrayList.get(position).getCart().get(position).getName());

это ошибка, которую я получаю, если получаю данные в хэш-карту https://ibb.co/d8gJ6d

1 Ответ

0 голосов
/ 04 июля 2018

Проблема в вашем коде заключается в том, что вы устанавливаете адаптер внутри цикла for. Чтобы решить эту проблему, переместите следующую строку кода:

rvOnGoingOrders.setAdapter(onGoingOrderadapter);

Вне цикла for, иначе у вас будет отображаться только один элемент.

...