[英]Swift4 : Download photo from Firebase
我想下载以前从Firebase上传的照片。 我正在使用以下代码:
fbUser = Auth.auth().currentUser
let storage = Storage.storage()
let storageRef = storage.reference(forURL: "somepath.some")
let profilePicRef = storageRef.child(fbUser.uid+"_profile_pic.jpg")
var imageFB : UIImage? = nil
profilePicRef.downloadURL(completion: { (url, error) in
if error != nil {
print(error!)
return
}
URLSession.shared.dataTask(with: url!, completionHandler: { (data, response, error) in
if error != nil {
print(error!)
return
}
guard let imageData = UIImage(data: data!) else { return }
DispatchQueue.main.async {
imageFB = imageData
}
}).resume()
})
照片在那里-如果删除照片,则会收到文件丢失的错误消息。 但是,下载后,即使照片在那里,imageFB始终等于nil。
关于如何解决该问题的任何建议?
Firebase包含FirebaseUI,可帮助管理图像下载/缓存。 根据文档,您应该能够以几行简单的代码下载并显示图像。
我建议您看一下文档 。 该链接将带您到图像下载部分,并提供有关如何安装和使用它的示例。
试试这个让我们知道是否可行。
fbUser = Auth.auth().currentUser
let storage = Storage.storage()
let storageRef = storage.reference(forURL: "somepath.some")
let profilePicRef = storageRef.child(fbUser.uid+"_profile_pic.jpg")
// give your db ref var here
let ref = Database.database().reference()
let usersRef = ref.child("users").child(uid!)
var picArray: [UIImage]()
下载:
usersRef.observeEventType(.ChildAdded, withBlock: { (snapshot) in
// Get download URL from snapshot
let downloadURL = snapshot.value() as! String
profilePicRef.downloadURL(completion: { (url, error) in
let data = Data(contentsOf: url!)
let image = UIImage(data: data! as Data)
picArray.append(image)
})
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.