无法从Flutter中的FirebaseStorageImage加载图像

时间:2020-03-03 16:17:23

标签: firebase flutter firebase-storage

我是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.

2 个答案:

答案 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);