Android Firestore循环返回空列表

时间:2019-01-22 20:12:20

标签: android google-cloud-firestore

我创建了两种方法来从Firestore获取数据。第一种方法是遍历用户选择的属性列表。另一种方法是根据用户的选择查询数据。遍历每个项目后,需要启动新方法。问题是,即使有可用数据,我的列表也始终为空。这是两种方法:

 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 :(得分:0)

您要在第一个函数中声明“ sellers”数组,然后尝试从第二个函数中添加该数组。将卖家移出该功能,以便可以使用它。