Цикл Android Firestore возвращает пустой список - PullRequest
0 голосов
/ 22 января 2019

Я создал два метода, чтобы получить данные из магазина.Первый метод заключается в переборе списка атрибутов, выбранных пользователем.Другой метод - запрос данных в зависимости от выбора пользователя.После перебора каждого элемента необходимо запустить новый метод.Проблема в том, что мой список всегда пуст, даже если есть доступные данные.Вот оба метода:

 private void getStores(ArrayList<String> checkedItems) {
    newSeller = new ArrayList<>();
    sellers = new ArrayList<>();
    a = 0;

    for (int i =0; i<checkedItems.size(); i++){
        String checkedItem = checkedItems.get(i);
        int finalA = i;
        getStore(checkedItem);

    }
}

private void getStore(String checkedItem) {
    db.collection("Seller")
            .whereEqualTo("typ", checkedItem)
            .get()
            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                    if (task.isSuccessful()) {
                        for (QueryDocumentSnapshot document : task.getResult()) {
                            SellerObject so = document.toObject(SellerObject.class);
                            so.setId(document.getId());
                            sellers.add(so);
                            Log.i(TAG, "onComplete: toa"+sellers.size());
                        }



                    } else {
                        Log.d(TAG, "Error getting documents: ", task.getException());
                    }
                }
            });
}

1 Ответ

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

Вы объявляете массив "sellers" внутри первой функции, но затем пытаетесь добавить к нему из второй функции. Уберите продавцов из функции, чтобы они были доступны.

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