【发布时间】:2021-02-11 06:38:49
【问题描述】:
我正在尝试从 firebase 获取一些数据,然后将该数据发送到 firebase 中的另一个请求。这样做的问题是,当我调用我的函数时,我得到了代码末尾空的列表的打印,但之后我打印了应该在列表中的结果。我认为这是由于它不等待它完成的 forEach 函数。在这里,您可以看到代码和输出的照片。 https://gyazo.com/0867cb3cde904146dab12ccd907c6341
我该怎么做才能让列表在打印出来后显示名称
Future <List<Map < dynamic, dynamic >>> getData() async {
List lists = [];
DataSnapshot snapshot = await databaseReference.once();
Map < dynamic, dynamic > values = snapshot.value;
values.forEach((key, values) async {
DataSnapshot snapshot = await FirebaseDatabase.instance.reference().child("Users/" + values["UID"].toString() + "/Name").once();
lists.add(snapshot.value);
print(snapshot.value);
});
print(lists);
}
【问题讨论】:
-
“我该怎么做才能让列表在打印出来后显示名称” - 使用
Future.forEach -
gyazo.com/e0c089e3ef56daac3d3b0a0ee119a2fd 我该如何解决这个问题?
-
使用
Future.forEach静态方法-Future.forEch(elements, ...) -
await Future.forEach(values.values, (value) {...}) -
欢迎您,然后写一个自我回答
标签: flutter