У меня есть две коллекции:
1. RetailerRegister,
2. CustomerRetailerRate.
1-й - это наборы розничных продавцов, а 2-й - это рейтинг клиентов, поэтому теперь я получаю весь список розничных продавцов, и теперь я хочу получить их рейтинг из другой коллекции, называемой CustomerRetailerRate.
Я пытался следовать коду, но все равно получаю ошибку: «java.lang.IndexOutOfBoundsException: Index: 0, Size: 0». Я думал, что это может быть проблема в моем адаптере зрения Rickler, но это не проблема. На самом деле, в коллекции «CustomerRetailerRate» есть только 2 записи, а в коллекции «RetailerRegister» 19 записей, поэтому я получаю данные о скорости из «RetailerRegister», но не получаю нулевое значение. Я также вижу это решение Нажмите здесь .
Query query = db.collection("RetailerRegister").whereEqualTo("Area", "Satellite").limit(limit);
query.get().addOnCompleteListener(task -> {
try {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : Objects.requireNonNull(task.getResult())) {
IsOffer = Boolean.valueOf(String.valueOf(document.get("IsOffer")));
StoreName.add(String.valueOf(document.get("RBusinessName")));
Query dataStoreRate = db.collection("CustomerRetailerRate").whereEqualTo("RUnicID", document.get("RUnicID"));
dataStoreRate.get().addOnCompleteListener(tasks -> {
try {
if (tasks.isSuccessful()) {
for (QueryDocumentSnapshot documents : Objects.requireNonNull(tasks.getResult())) {
Log.i(TAG, "loadNextData: " + documents.get("RatePoints"));
StoreRate.add(String.valueOf(documents.get("RatePoints")));
}
}
} catch (Exception ex) {
StoreRate.add("0.0");
}
}).addOnFailureListener(e -> {
StoreRate.add("0.0");
});
StoreDelivery.add(String.valueOf(document.get("Deliver In")));
StoreOfferAmt.add(IsOffer);
StoreOfferText.add(IsOffer);
txtStoreOfferAmt.add(String.valueOf(document.get("OfferAmt")));
txtStoreOfferText.add(String.valueOf(document.get("OfferContent")));
}
storeListAdapter.notifyDataSetChanged();
lastVisible = task.getResult().getDocuments().get(task.getResult().size() - 1);
Toast.makeText(getActivity(), "First Page", Toast.LENGTH_SHORT).show();
} else {
Log.d(TAG, "Error getting documents: ", task.getException());
Toast.makeText(getActivity(), "No Grocery Store Found At Your Locations!!", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
Toast.makeText(getActivity(), "No Grocery Store Found At Your Locations!!", Toast.LENGTH_SHORT).show();
}
});