final db = FirebaseDatabase.instance.reference().child("orders");
db.orderByKey().once().then((DataSnapshot snapshot){
var uids = snapshot.value.keys;
var data = snapshot.value;
for (var key in uids) {
var newList = data[key];
print(newList);
}
Приведенный выше код решил проблему, которую я задал альтернативным способом.
Ниже приведен полный код для получения заказа от имени администратора для изменения статуса заказа:
Future<void> fetchAndSetAdminOrders() async {
List<OrderItem> orderList = [];
final db = FirebaseDatabase.instance.reference().child("orders");
db.orderByKey().once().then((DataSnapshot snapshot){
var uids = snapshot.value.keys;
var data = snapshot.value;
for (var key in uids) {
var newList = data[key];
print(newList);
newList.forEach((orderId, orderData) {
orderList.add(
OrderItem(
id: orderId,
amount: orderData['amount'],
status: orderData['status'],
dateTime: DateTime.parse(orderData['dateTime']),
products: (orderData['products'] as List<dynamic>)
.map((item) => CartItem(
id: item['id'],
price: item['price'],
quantity: item['quantity'],
title: item['title'],
))
.toList(),
),
);
});
}
_orders = orderList.reversed.toList();
notifyListeners();
});}
Работает нормально и отображает все заказы с их статусом, за исключением нескольких ошибок, как показано ниже.
E/flutter (10256): A Orders was used after being disposed.
E/flutter (10256): Once you have called dispose() on a Orders, it can no longer be used.