输入'未来 '不是'String'类型的子类型

问题描述 投票:-1回答:2

我试图在我的Flutter应用程序(test.jpg)中显示存储在FireBase中的图像。到目前为止这是我的代码:

    StorageReference ref = FirebaseStorage.instance.ref().child("/test.jpg");
    String url = (await ref.getDownloadURL()).toString();
    print(url);
    return url;
  }

正确的URL打印到控制台,但如果我然后尝试通过以下方式显示URL:

Text(_imgUrl)

然后我收到以下错误:

类型'Future'不是'String'类型的子类型

有人可以帮我理解问题是什么以及如何纠正它?如果我应该包含任何其他代码或信息,请告诉我。

提前致谢!

flutter
2个回答
0
投票

方法getDownloadURL()返回Future<dynamic>。改变你的url var do dynamic的类型。


0
投票

您可能直接使用_imgUrl设置ref.getDownloadURL()而不使用await关键字。

如果你用var url = ref.getDownloadURL()设置你的变量,你会得到一个Future<Url>

但如果你用var url = await ref.getDownloadURL()设置你的变量,你会得到一个Url

© www.soinside.com 2019 - 2024. All rights reserved.