我想将我在我的应用中使用的一些图片放到Firestore中,然后从那里显示它们,而不是将它们作为资产捆绑在我的应用中。
为了做到这一点,我提出了以下解决方案:对于我要显示图像的项目,我创建了一个Firebase文档,其中我有一个字段,用于存储存储相应图片的文件的名称:
document
- name
- description
- imageName
然后,我将图像上传到FireStore,名称相同。
当我想显示图像时,我可以通过StreamBuilder成功获取文档,并提取imageName属性。
我还创建了必要的FireStore引用:
FirebaseStorage storage = new FirebaseStorage(
storageBucket: 'gs://osszefogasaszanhuzokert.appspot.com/'
);
StorageReference imageLink = storage.ref().child('giftShopItems').child(documentSnapshot['imageName']);
但是,我似乎无法将其传递给Image.network()
小部件。
是否可以按照我喜欢的方式显示图像,或者我应该使用其他图片提供商?
答案 0 :(得分:3)
您需要StorageReference .getDownloadURL()
中的imageLink
来获取存储网址链接:
final imageUrl = await imageLink.getDownloadUrl();
Image.network(imageUrl.toString());