我是编程的新手,从Flutter开始,跟随一些教程的进展缓慢。
我正在借助以下URL在 Firebase实时数据库上添加数据:
所有项目均在订单下保存> 唯一-uid-Stirng >键>字段
我能够使用以下URL检索单个项目:
我如何检索在不同uid下保存的所有记录,尝试了以下URL:
在前两个网址下方,仅检索已登录的用户字段
寻找类似以下网址的解决方案:
或者有没有其他方法可以使我达到同样的效果(编辑:仅在寻找Real Database Solutions)。
非常感谢您的回答。
答案 0 :(得分:0)
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.