Вы должны изменить свой код следующим образом:
getCartTotal(String userId) async {
var cartTotal = 0;
QuerySnapshot snapshot = await Firestore.instance
.collection('users')
.document(userId)
.collection('cart')
.getDocuments();
if (snapshot == null) {
return;
}
snapshot.documents.forEach((doc) {
cartTotal = cartTotal + doc.data['quantity'];
});
print(cartTotal);
}
В вашем текущем коде для каждого документа в QuerySnapshot
вы:
- Объявление
cartTotal
переменная - Назначение значения для
cartTotal
- Печать значения
cartTotal
Обратите внимание, что если вы планируете иметь тележкис большим количеством документов (например, заказов) вы можете использовать другой подход. Например, вы можете рассчитать сумму для каждой корзины с помощью облачной функции (каждый раз, когда в корзине создается новый документ), вместо того, чтобы запрашивать все документы корзины каждый раз, когда вы хотите получить сумму.