Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将firebase存储中的图像显示到小部件中?_Firebase_Flutter_Firebase Storage - Fatal编程技术网

如何将firebase存储中的图像显示到小部件中?

如何将firebase存储中的图像显示到小部件中?,firebase,flutter,firebase-storage,Firebase,Flutter,Firebase Storage,我想将保存在firebase storage中的图像显示到一个小部件中,该小部件在我的屏幕上显示profile picture。 目前,我能够获得下载url,但不确定如何利用该url将图像显示到小部件中。下面是显示profile pictureUI的代码,我想用firebase中的图像更新该UI(即ClipOval小部件内部) 我是否需要使用NetworkImage或cached NetworkImage或cache\u image小部件来实现此目的?让NetworkImage下载 var re

我想将保存在
firebase storage
中的图像显示到一个小部件中,该小部件在我的屏幕上显示
profile picture
。 目前,我能够获得
下载url
,但不确定如何利用该url将图像显示到小部件中。下面是显示
profile picture
UI的代码,我想用firebase中的图像更新该UI(即
ClipOval
小部件内部)


我是否需要使用
NetworkImage
cached NetworkImage
cache\u image
小部件来实现此目的?

NetworkImage
下载

var ref = FirebaseStorage.instance.ref().child(fileName)
String location = await ref.getDownloadURL();
return new NetworkImage(downloadUrl);
更新

String _imageUrl;

void initState() {
  super.initState();

  var ref = FirebaseStorage.instance.ref().child(fileName)
  ref.getDownloadURL().then((loc) => setState(() => _imageUrl = loc));
}


我认为
displayFile
方法与您建议的类似。如何在
ClipOval
小部件中使用它,以便显示图像@甘特·斯切鲍尔索里,我不明白你的问题。如果你想自己下载图像(
.getData(…)
),那么你需要
MemoryImage
而不是
NetworkImage
。如果我之前不清楚,很抱歉。我不确定如何在构建小部件下的clipoval小部件中使用下载url。如果您当前看到,它将使用Image.file来显示相机和多媒体资料中的图像,但不会持久。如何使用NetworkImage或您在clipoval中建议的代码从clipoval内部显示存储器中的图像@居恩特·斯切鲍尔不确定问题出在哪里。我更新我的答案。也许这就是你要找的。是的,这就是我要找的。不过有一个小问题,现在每当我从照相机或多媒体资料中选择图像时,它不会立即反映在
ClipOval
中。如果我转到另一个屏幕,然后返回,那么我会看到用最新图片更新的小部件。你知道为什么会这样吗?我期待看到的图像捕获或选择从画廊将立即显示@居恩特·泽克鲍尔
var ref = FirebaseStorage.instance.ref().child(fileName)
String location = await ref.getDownloadURL();
return new NetworkImage(downloadUrl);
String _imageUrl;

void initState() {
  super.initState();

  var ref = FirebaseStorage.instance.ref().child(fileName)
  ref.getDownloadURL().then((loc) => setState(() => _imageUrl = loc));
}
        child: _imageUrl == null ? Image.asset('icons/default_profile_icon.png', height: 110.0,)
                :ImageNetwork(_imageUrl,fit: BoxFit.cover,