gpt4 book ai didi

flutter - Flutter Firebase存储 future 问题

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

我在下面的函数中遇到了一些问题。该功能正在处理从Firebase存储获取的异步数据。我正在使用它来获取我存储在其中的文件的名称和网址。
问题在于获得Urls。具体就行:

String url = element.getDownloadURL().toString();
getDownloadedURL()是Firebase的 future 。我试图等待,但由于“元素”,它无法识别等待。
总体而言,当我通过“ future ”构建器在UI中使用此名称时,名称显示得很好,而网址却没有。如打印语句所示,正在检索它。但它没有被等待,因此UI已经更新。
一直在尝试很多事情,但是还没有找到解决方案,因此,非常感谢您的帮助。
Future<void> getImageData() async {
final imagesFromStorage = await fb
.storage()
.refFromURL('gs://little-big-deals.appspot.com')
.child('images')
.listAll();

imagesFromStorage.items.forEach((element) {
print(element.name);
String url = element.getDownloadURL().toString();
print(url.toString());
imageData.add(ImageData(element.name, url.toString()));
});
}
非常感谢

最佳答案

您不能在forEach中使用异步。
只需使用for循环:

Future<void> getImageData() async {
final imagesFromStorage = await fb
.storage()
.refFromURL('gs://little-big-deals.appspot.com')
.child('images')
.listAll();

for (var element in imagesFromStorage.items) {
print(element.name);
String url = (await element.getDownloadURL()).toString();
print(url.toString());
imageData.add(ImageData(element.name, url.toString()));
}
}

关于flutter - Flutter Firebase存储 future 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62535350/

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