Firestore/Firebase 无法从文件夹中获取图像

Posted

技术标签:

【中文标题】Firestore/Firebase 无法从文件夹中获取图像【英文标题】:Firestore/Firebase not able to get images from folder 【发布时间】:2019-12-16 00:47:49 【问题描述】:

我在 firebase 上有一个文件夹。其中名为“项目”。 “项目”包含 100 张图像。我只想获取列表中的所有图像 URL。 我试过谷歌文档。谷歌只显示一张图片。但我只需要完整的图片 URL。

 FirebaseStorage firestore = FirebaseStorage.getInstance()
 val ref: StorageReference? = firestore.getReference("Item")


I am facing this error =
StorageException has occurred. The object​ does not exist at the  location

【问题讨论】:

@AlexMamo:我重新打开了这个问题。虽然需要获取下载 URL 来实现这个用例,但它还有很多内容,因此它不是完全重复的。 @FrankvanPuffelen 你说得对,保持开放更有意义???? 【参考方案1】:

您正在调用firestore.getReference("Item"),它会为您提供该文件夹的StorageReference。 Firebase 的 androidiosjavascript SDK 最近添加了一个方法到 list the files in a folder 到 StorageReference

因此,您需要遍历 ListResult 并调用 getDownloadUrl 以获取每个文件的下载 URL。请记住,getDownloadUrl 是异步的,因此它返回一个任务。获取如下所示的实际下载 URL:How to get the download url from Firebase Storage?

【讨论】:

这也是正确答案。谢谢,弗兰克·范·普菲伦【参考方案2】:

正如我在文档中发现的那样,这种方法可以帮助public Task<ListResult> listAll ()

首先,您需要获取所需的文件夹参考,在您的情况下它是 item/

StorageReference mImageStorage = FirebaseStorage.getInstance().getReference().child("items/");

然后在listAll() 的帮助下扩充其中的文件列表

这里是描述 https://firebase.google.com/docs/reference/android/com/google/firebase/storage/StorageReference.html#listAll()

【讨论】:

firestore = FirebaseStorage.getInstance() val ref: StorageReference? = firestore.getReference("Item/") ref?.listAll()?.addOnSuccessListener val item = it.items list.layoutManager = LinearLayoutManager(activity) list.adapter = Adapter(activity, item) 它工作正常,谢谢。我已经做好了。这是正确的解决方案。

以上是关于Firestore/Firebase 无法从文件夹中获取图像的主要内容,如果未能解决你的问题,请参考以下文章

使用 Firestore 清理快照

如何在 Swift 中从 Cloud FireStore Firebase 访问特定字段

firestore firebase storage 以较低的分辨率检索图像

React Native重复超时将集合写入firestore@firebase/firestore:Firestore(8.4.2):连接WebChannel传输错误

检索数据时出现 Vue/Firestore/Firebase 错误

Firestore/Firebase 模拟器未运行