# #android #firebase #google-cloud-firestore
Вопрос:
Добрый день, я все еще новичок в Firebase/Firestore. Я создаю приложение для прачечной, и я хотел бы, чтобы пользователь выбирал услугу прачечной на основе цены за корзину.
После того, как пользователь выбрал все товары и установил количество для каждого товара, пример
Я хочу получить предложение от всех услуг прачечной и отобразить его для пользователя в окне вторичной переработки от самого дешевого до самого дорогого.
Каждая услуга прачечной должна иметь свою собственную цену за одни и те же товары. Было бы проще, если бы они все согласились на одинаковые цены.
Мне нужно получить первый товар из списка заказов и количество, перейти в бизнес-коллекцию и найти тот же товар на основе идентификатора, а затем вернуть цену. После этого я умножу цену на количество для первого товара и сделаю это для остальных товаров в корзине, чтобы получить общую цену.
Затем я отобразлю эту общую цену в первом представлении карты в моем окне повторного просмотра.
Затем повторите процесс для второго вида карты и т. Д…
Вот моя структура базы данных
Вот мой пример кода
orderRef.document(orderId).collection("orderlist").get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
if (!queryDocumentSnapshots.isEmpty()) {
for (QueryDocumentSnapshot queryDocumentSnapshot : queryDocumentSnapshots) {
String itemId = queryDocumentSnapshot.getId();
double quantity = queryDocumentSnapshot.getDouble("quantity");
businessItemPriceRef.document(businessId).collection("product_prices_list").get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull @NotNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
double total = 0;
for (QueryDocumentSnapshot query : Objects.requireNonNull(task.getResult())) {
String businessItemPriceID = query.getId();
double item_price = query.getDouble("price_unit");
if(itemId.equals(businessItemPriceID)) {
if (item_price > 0.0) {
double item_price_quantity = item_price * quantity;
total = item_price_quantity;
//holder.setCost(total);
}
}
}
}
}
});
}
// Get the complete Price here
}
}
});
Комментарии:
1. Пожалуйста, отредактируйте свой вопрос и добавьте структуру своей базы данных в виде скриншота и укажите точные данные, которые вам нужно получить.
2. Привет, Алекс, я обновил свой вопрос, надеюсь, теперь он более ясен.
3. Что именно в этом коде работает не так, как вы ожидаете? Расскажите нам, что не так с общим кодом. Есть ли у вас какие-либо ошибки?
4. Ну, этот код не суммирует общую цену, как я хочу. вместо этого я получаю цену последнего элемента в итерации