【发布时间】:2021-05-08 15:54:47
【问题描述】:
我创建了一个 Future,它打印出我的 firestore 集合“产品”文档中的所有字段,但该集合是许多同名集合之一,如下所示,因此我打印出所有值每个集合文档的字段。我想为其自己的集合“产品”中的每个文档添加“产品价格”
第一个产品系列:
第二个产品系列:
我的功能是收听所有“产品”集合。当我尝试为他们的每个文档打印 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
【问题讨论】:
标签: firebase flutter dart google-cloud-firestore