'Future <dynamic>'类型不是'String'类型的子类型

时间:2019-03-26 14:32:27

标签: flutter

我正在尝试在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'的子类型

有人可以帮助我了解问题所在以及如何解决该问题吗?请让我知道我是否应该包含其他任何代码或信息。

谢谢!

2 个答案:

答案 0 :(得分:0)

方法getDownloadURL()返回一个Future<dynamic>。更改您的url变量类型dynamic

答案 1 :(得分:0)

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

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

但是如果您使用var url = await ref.getDownloadURL()设置变量,则会得到Url