【问题标题】:The argument type 'Future' can't be assigned to the parameter type 'String'参数类型“Future”不能分配给参数类型“String”
【发布时间】:2020-06-22 19:41:43
【问题描述】:

我想获取 url 以在我的应用中使用 firebase 存储图像

我有这个方法:

Future abc(ad) async{    
  final ref = FirebaseStorage.instance.ref().child(ad);
  var url = await ref.getDownloadURL();
  print(url);
  return url;

我使用final a = abc(snapshot.data[index].data["photo"].toString());

ListTile(
              leading:Image.network(a),
              title: Text("Reporte de:"+snapshot.data[index].data["nombre"].toString()+snapshot.data[index].data["apellidos"].toString()),
              subtitle: Text("Fuga en:"+snapshot.data[index].data["colonia"].toString()+" cuya gravedad es:"+snapshot.data[index].data["gravedad"].toString()),
            ),

我做错了什么?

【问题讨论】:

  • abc 是异步的,所以它总是返回一个 Future。你必须等待它的结果,就像你在等待 getDownloadURL() 一样。

标签: firebase flutter dart


【解决方案1】:

调用 abc 时使用 await,然后转换使用 a.toString() 作为 Image.network 的参数

因为您返回的是未来类型,所以 a 将属于该类型,因此您需要在传递给 Image.network 之前将其转换为字符串类型

【讨论】:

    猜你喜欢
    • 2021-04-07
    • 2021-12-30
    • 2021-01-05
    • 2021-10-02
    • 2021-10-16
    • 2021-10-10
    • 2021-10-06
    • 2020-04-15
    • 2020-12-03
    相关资源
    最近更新 更多