i have a real strange problem. I have two methods where i parse data depending on user selected values. In my seccond method i parse those data. The seccond method returns always the right values but in my first method gets this values only every seccond time. I cannot find the issue. The list which i get from previous method is also right, so i get also all values. Here is my Code:
mBuilder.setPositiveButton("Suche", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int which) {
ArrayList<String> selectedCategories = new ArrayList<>();
for (int i = 0; i < mUserItems.size(); i++) {
selectedCategories.add(listItems[mUserItems.get(i)]);
}
// selectedCategories.add("asdf");
getStores(selectedCategories);
}
});
private void getStores(ArrayList<String> checkedItems) {
for (int i =0; i<checkedItems.size(); i++){
String checkedItem = checkedItems.get(i);
getStore(checkedItem);
}
getDistanceToUser(sellers2);
}
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());
sellers2.add(so);
Log.i(TAG, "onComplete: toa"+sellers.size());
}
} else {
Log.d(TAG, "Error getting documents: ", task.getException());
}
}
});
}