Firebase Storage の画像を使用して入力する CollectionView があります。「userId」ノードの下に画像を保存します。ノードの下で利用可能なファイルの存在を一括で確認したいので、それらを配列に格納できます。
それぞれの URL を個別に取得しようとしましたが、これは非常に間違ったアプローチだと思います。しかし、私はそれを最も効率的な方法で行う方法とどこに置くべきかを理解できませんでした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()
また、最初に URL を取得してから画像を取得するよりも、画像を NSData として取得する方がよいでしょうか? その場合、Firebase Storage から画像を一括で取得するにはどうすればよいですか?