如何从新的Firebase存储下载和查看图像?

我可以将图片上传到Firebase存储,但我无法下载它们。 这是我的代码下载图像:

let storage = FIRStorage.storage() let localURL : NSURL! = NSURL(string: "file:///Documents/co.png") // i also tried let localURL : NSURL! = NSURL.fileURLWithPath("file:///Documents/co.png") func download() { let storageRef = storage.referenceForURL("gs://project-5547819591027666607.appspot.com") let imageRef = storageRef.child("co.png") let downloadTask = imageRef.writeToFile(localURL) { (URL, error) -> Void in if (error != nil) { print(error?.localizedDescription) } else { self.imageView.image = UIImage(data: data!) } } } 

我收到 – 可选(“发生未知错误,请检查服务器响应。”)

另外,一旦我得到他们下载我将如何查看该图像?

为了试图查看图像是否被下载,我创build了一个UIImageView,并在storyboard中为它设置了一个名为“imageView”的插口,然后将下载的图像设置为UIImageView。

 self.imageView.image = UIImage(data: data!) 

尝试

首先获取您要下载的图像的参考

 let reference = FIRStorage.storage().reference("uploads/sample.jpg") 

如果您知道图像的大小很低 – 比如最大1-2 mb。 下载内存中的图像

 reference.dataWithMaxSize(1 * 1024 * 1024) { (data, error) -> Void in if (error != nil) { print(error) } else { let myImage: UIImage! = UIImage(data: data!) } } 

这将是从Firebase存储直接下载的最快最简单的方法。

但是,有些情况下,您需要进度块和某些其他的东西,如caching。 在这种情况下,您可以使用Alamofire等任何第三方从您从Firebase Storage获取的url下载图片。
要得到的url做这样的事情

 reference.downloadURLWithCompletion { (URL, error) -> Void in if (error != nil) { // Handle any errors } else { print(URL) // download image using NSURLSession or Alamofire } }