从 Fire Storage 检索图像,但是如果图像不存在,则应用程序崩溃
Posted
技术标签:
【中文标题】从 Fire Storage 检索图像,但是如果图像不存在,则应用程序崩溃【英文标题】:Retrieving image from Fire Storage however if the image does not exist the app crashes 【发布时间】:2021-11-08 05:07:13 【问题描述】:您好,我最近想出了如何使用 UIImagePickerController 上传和图像到 Firebase 存储,以及如何在我的视图控制器上的 UIImageView 中显示该图像,但是问题是如果该文件在 Fire Storage 中不存在,那么应用程序在我有机会上传图片之前就崩溃了。我是新手,所以我希望有人对我的代码进行简单的修复,以了解我如何检索图像。我想从 Fire 中检索图像。存储,但如果该图像尚不存在,那么它不会使应用程序崩溃,而只是简单地查看它。这是我用来检索有效图像的代码,但前提是图像已经存在。感谢您的帮助!
我得到的错误是unwrapping Optional Value时意外发现Nil
//使用已登录的Firestore数据库-当前用户-从Firestorage检索上传的照片,并在名为profileimage.image的ViewController中将图像显示到UIImageView
func downloadimages()
let reference = Storage.storage().reference(withPath: "\("images/"+Auth.auth().currentUser!.uid+"+.jpg")")
reference.downloadURL (url, error) in
let data = NSData(contentsOf: url!)
let image = UIImage(data: data! as Data)
self.profileimage.image = image
【问题讨论】:
【参考方案1】:我也想出了解决这个问题的方法,并想发帖以防任何新的编码人员遇到同样的问题。我只需要添加
if error != nil
print(error!.localizedDescription)
return
完整示例
func downloadimages()
let reference = Storage.storage().reference(withPath: "\("images/"+Auth.auth().currentUser!.uid+"+.jpg")")
reference.downloadURL(url, error) in
if error != nil
print(error!.localizedDescription)
return
let data = NSData(contentsOf: url!)
let image = UIImage(data: data! as Data)
self.profileimage.image = image
【讨论】:
以上是关于从 Fire Storage 检索图像,但是如果图像不存在,则应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章
使用.net核心Web API和jquery从天蓝色斑点中上传和检索图像
firestore firebase storage 以较低的分辨率检索图像
如何从 fire-base 检索数据到新活动中单击 RecyclerView
从 url 检索 jpg 图像返回 nil。但是,从 url 检索 png 图像工作正常
Fire Storage Exception([firebase_storage/unauthorized] 用户无权执行所需的操作。)(我的规则是允许读/写)