【发布时间】:2016-10-16 21:08:30
【问题描述】:
我有一个 CollectionView,我正在使用 Firebase 存储中的图像来填充它。我将图像存储在“userId”节点下。我想批量检查节点下可用的文件是否存在,以便将它们存储在数组中。
我尝试分别检索每个网址,但是,我认为这是一种非常错误的方法。但是,我不知道如何以最有效的方式进行操作以及将collectionView.reload() 放在哪里。这就是我所做的:
let storage = FIRStorage.storage()
let firstImageRef = storage.referenceForURL("gs:storageUrl").child(uid).child("profile.jpg")
firstImageRef.downloadURLWithCompletion { (URL, error) -> Void in
if (error != nil) {
print(error)
} else {
if let url = URL {
self.databaseImagesOrder.append(url)
}
}
}
let secondImageRef = storage.referenceForURL("gs:storageUrl").child(uid).child("second_pic.jpg")
secondImageRef.downloadURLWithCompletion { (URL, error) -> Void in
if (error != nil) {
print(error)
} else {
if let url = URL {
self.databaseImagesOrder.append(url)
}
}
}
// etc..
collectionView.reloadData()
另外,将图像作为 NSData 获取比先获取 url 然后获取图像更好吗?如果是这样,我如何从 Firebase 存储中批量检索图像?
【问题讨论】:
-
有没有办法可以完成这三个?正确的做法是什么?如果我单独打电话,我不知道在哪里打电话给
collectionView.reload()。 -
听起来您希望一次性加载文件夹中的所有文件。这不是 Firebase 存储中支持的操作。我也怀疑它是否会有很大帮助,因为对于大多数文件来说,文件的大小远远超过所需的额外往返。
标签: swift firebase firebase-storage