【发布时间】:2019-12-14 00:36:43
【问题描述】:
使用 Firebase 支持的 CMS Flamelink,CMS 提供了一定的 Firestore 和存储结构。图像存储在 Storage 中,对它的引用存储在 Firestore 中。 Firestore 确实为我提供了对存储中资产的 DocumentReference。但我不知道如何从 DocumentReference 中获取 DownloadUrl。我可以从 DocumentReference 中检索文件名,但不能从 Storage 中检索完整路径。完整路径将允许我创建一个 StorageReference,它可以访问 getDownloadUrl()。
因此,作为一种解决方法,我目前正在将文件名与我在存储中查找的存储前缀连接起来。但是必须有更好的方法从 DocumentReference 中检索 DownloadUrl。否则,在我看来,它并不是真正的 DocumentReference。从 DocumentReference 获取 DownloadUrl 的正确方法是什么?
getNewImage(DocumentReference imgRef) async {
DocumentSnapshot imgSnapshot = await imgRef.get();
final imageName = imgSnapshot.data['file'];
// How to get path dynamically?
String storagePath = 'flamelink/media/$imageName';
StorageReference storageReference = await DataProvider.getStore();
StorageReference ref = storageReference.child(storagePath);
String dlurl = await ref.getDownloadURL();
setState(() {
_imageUrl = dlurl;
});
}
我正在使用 Flutter 1.7.8 和 cloud_firestore 0.12.8 和 firebase_storage 3.0.3。
【问题讨论】:
标签: flutter dart google-cloud-firestore firebase-storage flamelink-cms