我创建了一个Future,可以打印出我的Firestore集合“产品”文档中的所有字段,但是此集合是许多同名的一个,如下所示,因此,我将打印出每个集合的所有值托收文件的栏位。我想为其自身集合“产品”中的每个文档添加“ productPrice”
第一批产品:
第二产品集合:
我的职责是聆听所有“产品”系列。当我尝试为每个文档打印productPrice字段值时,将它们全部打印出来,如下面的控制台所示。我需要将29.33 + 39.69的productPrice值相加,以得出69.02,但是我不知道如何在不添加值149.99的无关文档的情况下进行操作
final FirebaseAuth _auth = FirebaseAuth.instance;
final FirebaseFirestore _cloudStore = FirebaseFirestore.instance;
List<OrderModel> orders = [];
List<ProductModel> orderProductList = [];
Future startListening() async {
User currentUser = _auth.currentUser;
if(currentUser != null){
_cloudStore
.collection("orders")
.doc(currentUser.email)
.collection("orders")
.snapshots()
.listen((event) {
orders = event.docs.map((value){
return OrderModel(
value.data()["name"],
value.data()["date"],
value.data()["dateTime"],
value.data()["status"],
value.data()["productImage"],
);
}).toList();
for(var i = 0; i < orders.length; i++){
if(currentUser != null){
_cloudStore
.collection("orders")
.doc(currentUser.email)
.collection("orders")
.doc(orders[i].dateTime)
.collection("products")
.snapshots()
.listen((event){
orderProductList = event.docs.map((value){
return ProductModel(
value.data()['productName'],
value.data()['productQuantity'],
value.data()['productPrice'],
value.data()['productImage'],
);
}).toList();
print('separate');
event.docs.forEach((value){
var prices = value.data()['productPrice'];
print(prices);
});
notifyListeners();
});
}
}
notifyListeners();
});
} else {
return null;
}
}
我当前在控制台中的输出:
Restarted application in 881ms.
Reloaded 0 of 983 libraries in 32ms.
flutter: separate
flutter: 149.99
flutter: separate
flutter: 29.33
flutter: 39.69
如果我正确理解了这个问题,则可以这样更改代码:
double sum = 0.0;
event.docs.forEach((value){
var prices = value.data()['productPrice'];
sum = sum + prices;
print(prices);
});
print(sum);
您只需在print('separate');
声明后添加即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句