gpt4 book ai didi

flutter - 如何从DataSnapshot返回 future 列表

转载 作者:行者123 更新时间:2023-12-03 04:28:13 25 4
gpt4 key购买 nike

我想从Firebase数据库快照返回一个“将来列表”,这是我的代码,但是我无法使其正常工作:

Future<List<CocheDetailItem>> getCoches(ids) async {
List<CocheDetailItem> coches = [];
final dbRef = FirebaseDatabase.instance.reference().child('17082019');
for (var i = 0; i < ids.length; i++) {
var id = ids[i];
dbRef.child(id).once().then((DataSnapshot snapshot) {
if (snapshot.value != null) {
Map<dynamic, dynamic> jsres = snapshot.value;
CocheDetailItem coche = CocheDetailItem.fromJson(jsres);
coches.add(coche);
}
});
print('here is i ${ids[i]} ');
}
return coches;

}

我得到的返回是空的区域。有人可以帮我吗?

最佳答案

注意,dbRef.child(id).once();是一个异步函数,因此您必须等待它结束才能获取数据。使用await关键字可以做到这一点。

Future<List<CocheDetailItem>> getCoches(ids) async {
List<CocheDetailItem> coches = [];
final dbRef = FirebaseDatabase.instance.reference().child('17082019');
for (var i = 0; i < ids.length; i++) {
var id = ids[i];
var dataSnapshot = await dbRef.child(id).once();
if (dataSnapshot.value != null) {
Map<dynamic, dynamic> jsres = dataSnapshot.value;
CocheDetailItem coche = CocheDetailItem.fromJson(jsres);
coches.add(coche);
}
print('here is i ${ids[i]} ');
}
return coches;
}

关于flutter - 如何从DataSnapshot返回 future 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57762338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com