Flutter Range Error在集合内激发存储阵列



我正在从收款订单的文档的产品数组中获取数据。

QuerySnapshot querySnapshot = FirebaseFirestore.instance.collection("orders").get();
var x = querySnapshot.docs[i].data()["products"][j]["oprice"];

其中i&j是迭代器。

但程序在范围值超出界限后崩溃。现在如何检查这些索引的x是否存在。

if (x == null) 
break;

由于给出错误而失败

[ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: RangeError (index): Invalid value: Not in inclusive range 0..1: 2

完整代码:

QuerySnapshot querySnapshot =
await FirebaseFirestore.instance.collection("orders").get();
for (int i = 0; i < querySnapshot.docs.length; i++) {
var a = querySnapshot.docs[i];
for (int j = 0;; j++) {
if (a.data()["products"][j]["oprice"] == null) break;

orderList.add(OrderList(
orderNumber: a.data()["products"][j]["orderid"],
price: a.data()["products"][j]["oprice"],
addressReciever: a.data()["products"][j]["caddress"],
mobileNumber: 9999123490.toString(),
paymentStatus:
a.data()["products"][j]["paymode"].toString().toUpperCase() ==
"CASH ON DELIVERY"
? "Cash on Delivery"
: "Paid",
recieverName: a.data()["products"][j]["cname"],
orderStatus: a.data()["products"][j]["status"],
productName: a.data()["products"][j]["name"]));
}
setState(() {});
}

您需要通过products数组的大小来绑定内部j循环。

for (int j = 0; a.data()["products"].length; j++) {
// a.data()["products"][j] is safe to use here.
}

最新更新