我看到,有很多示例有关如何使用Flutter上传到Firebase存储,但实际上没有下载/读取/显示已经上传的图像。
在Android中,我只是使用 Glide
显示图像,我该如何在 flutter 朔迷离中进行?我是否使用 networkImage
类,如果是,我如何首先获取存储在存储中的图像的URL?
最佳答案
要查看存储中的图像,您需要的是存储中文件的名称。获得所需特定图像的文件名后。 就我而言,如果我想加载测试图像,
final ref = FirebaseStorage.instance.ref().child('testimage');
// no need of the file extension, the name will do fine.
var url = await ref.getDownloadURL();
print(url);
获得网址后,
Image.network(url);
就是这样:)
基于其中一条评论的新替代答案。
I don't see anywhere google is charging extra money for downloadURL. So if you're posting some comments please attach a link to it.
将文件上传到存储后,使该文件名唯一,并将该名称保存在 Firestore 或实时数据库中的某个位置。
getAvatarUrlForProfile(String imageFileName) async {
final FirebaseStorage firebaseStorage = FirebaseStorage(
app: Firestore.instance.app,
storageBucket: 'gs://your-firebase-app-url.com');
Uint8List imageBytes;
await firebaseStorage
.ref()
.child(imageFileName)
.getData(100000000)
.then((value) => {imageBytes = value})
.catchError((error) => {});
return imageBytes;
}
Uint8List avatarBytes =
await FirebaseServices().getAvatarUrlForProfile(userId);
并像使用它一样,
MemoryImage(avatarBytes)
https://stackoverflow.com/questions/50877398/
相关文章:
android - 如何在 Flutter 中禁用 FlatButton 的飞溅突出显示?
android - 在 Android Studio 中开发的 Flutter 项目的合法 .git
google-cloud-firestore - 如何使用 Flutter 配置 Firebase
swift - 如何在 Flutter 中启用对现有项目的 Swift 支持
flutter - Flutter 中的 MyApp 类错误未定义方法 'setState'
flutter - 我可以在 Flutter 应用中使用 Android 8.0 自适应图标吗?