我是Flutter的新手,我正在尝试在Flutter应用程序中加载Firebase存储映像。但是构建失败,但有例外。我尝试了以下方法将图像加载到ListTile
中。我该如何解决?
ListTile(
title: Text(record.date),
leading: CircleAvatar(
backgroundImage: FirebaseStorageImage(
'gs://project-12345.appspot.com/path/to/avatar_image.png'),
),
),
以下是我得到的例外。
Compiler message:
/D:/sdks/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_storage_image-0.4.0/lib/firebase_storage_image.dart:54:24: Error: The method 'FirebaseStorageImage.load' has fewer positional arguments than those of overridden method 'ImageProvider.load'.
ImageStreamCompleter load(FirebaseStorageImage key) =>
^
/D:/sdks/flutter/packages/flutter/lib/src/painting/image_provider.dart:403:24: Context: This is the overridden method ('load').
ImageStreamCompleter load(T key, DecoderCallback decode);
^
Target kernel_snapshot failed: Exception: Errors during snapshot creation: null
build failed.
FAILURE: Build failed with an exception.
答案 0 :(得分:1)
如果您已将图像存储在Firebase存储器中,则可以使用firebase生成的图像访问令牌在flutter应用程序中显示该图像。
尝试
backgroundImage: NetworkImage(access_token_for_your_image),
如果您尚未创建访问令牌,则可以通过以下方法进行操作:转到Firebase存储中的映像位置,然后单击“文件位置”选项下的“创建新的访问令牌”。您还可以在上传的过程中使用getDownloadURL()
函数从应用程序上传图像时生成一个图像。
答案 1 :(得分:0)
推荐这样:
StorageReference sr = FirebaseStorage.instance.ref();
String url = await sr.child('path').getDownloadURL();
Image.network(url);