【发布时间】:2021-05-27 16:06:14
【问题描述】:
图像位置为 gs://olio-ae400.appspot.com/Listings/Food/-M3g8pZDGmApicUAQtOi/MainImage
我想从这个 firebase 存储位置下载到 imageview。 使用了下面的代码,但是无法从url下载图片?
let storage = Storage.storage()
var reference: StorageReference!
reference = storage.reference(forURL: "gs://olio-ae400.appspot.com/Listings/Food/-M3g8pZDGmApicUAQtOi/MainImage")
reference.downloadURL { (url, error) in
print("image url is",url!)
let data = NSData(contentsOf: url!)
let image = UIImage(data: data! as Data)
self.img.image = image
}
在响应中检索 url 时在 downloadURL 行出现错误。
下载图片的正确方法是什么?
【问题讨论】:
-
您可能应该在文件名中添加扩展名。存储不关心扩展名,因此您可以使用任何字符串作为文件名,但是当您以后想要访问该文件时,它会让您更清楚。因此,最初将文件存储为
-M3g8pZDGmApicUAQtOi/MainImage.jpg"),而不是-M3g8pZDGmApicUAQtOi/MainImage")。此外,您没有正确下载文件。见Download to a local file。然后注意 .downloadUrl 获取现有文件的下载 URL -
已编辑问题并添加图片存放位置。可以看到文件格式为image/jpeg。
-
非常好。现在,查看我在上述评论中链接的文档,该文档显示了从 Storage 下载图像的正确方法。您可以使用
.getData(maxSize:将其下载到内存中,也可以使用.write(toFile:将其下载到磁盘。查看文档中的内容,让我们知道您卡在哪里(如果您这样做,请更新您问题中的代码) -
我会尝试代码并更新你
-
我使用了firebaseUi,它成功了。代码如下:
标签: swift firebase download imageview firebase-storage