使用我已连接到Firebase数据库的dataReference,我希望将集合中的所有图像显示到CollectionView中,以供用户查看。
这里有文档,但是我在如何检索文本方面没有发现太多。 https://firebase.google.com/docs/firestore/query-data/get-data
关于stackOverflow的其他答案要么使用实时数据库,要么使用文本链接和图像,这不是我想要的。我的图像上传到集合中Firebase Storage上的文件夹中,并且需要全部下载并显示给用户。
如何使我的“ dataReference”可以在集合视图中显示。我不了解.getDocuments函数,也不了解这些文件将存放在何处。任何帮助将不胜感激。
let dataReference = Firestore.firestore().collection("images")
dataReference.getDocuments() { (querySnapshot, err) in
if let err = err {
print("Error getting documents: \(err)")
} else {
for document in querySnapshot!.documents {
print("\(document.documentID) => \(document.data())")
}
}
}
答案 0 :(得分:0)
查找有关URLRequest的Swift文档。请求的主要部分是: httpBody httpMethod 标头字段 网址
查找URLSession以确定如何将数据解码为图像数组。看起来像URLSession.shared.dataTask,它将成为进一步研究的表达。
这是在Swift 4和/或5中从API数据库获取电影标题的示例代码:
func fetchMoviesFromFirebase(完成:@转义CompletionHandler = {_ in}){
let requestURL = firebaseURL.appendingPathExtension("json")
URLSession.shared.dataTask(with: requestURL) { (data, response, error) in
if let error = error {
NSLog("Error fetching Task \(error)")
completion(error)
return
}
guard let response = response else {
NSLog("Response from server: \(response)")
return
guard let data = data else {
NSLog("No data returned by data task")
completion(NSError())
return
}
do {
let movieTitles = Array(try JSONDecoder().decode([String: MovieTitles].self, from: data).values)
completion(nil)
} catch {
NSLog("Error decoding task representations: \(error)")
completion(error)
return
}
}.resume()
在这种情况下,movieTitles是价格,但在这种情况下,您将使用选择的适当类型(对于图像)来为图像而不是电影标题装配数据