我有一个使用iOS
来存储图像的Firebase Storage
应用程序。上载图像后,我将其storage reference
保存在我的Firebase Database
中。应用加载后,会从数据库中获取各种storage references
并使用FirebaseUI
方法来显示其对应的图像,如下所示:
let storageRef = Storage.storage().reference(forURL: imageUrl)
imageView.sd_setImage(with: storageRef, placeholderImage: nil)
这很好,但是非常慢。
[寻找加速Firebase Storage
的解决方案时,我发现这篇文章暗示使用图片的公共链接,即。其download url
,而不是其storage reference
:https://stackoverflow.com/a/44362350/5225013
我的理解是,这与public urls
前面有CDN,而storage references
无关。
download url
可以在应用中使用以下代码进行检索:
let storageRef = Storage.storage().reference(forURL: imageUrl)
storageRef.downloadURL { (downloadUrl, error) in
if let downloadUrl = downloadUrl {
// do something with downloadUrl
}
}
但是,以这种方式获取它对于我的目的来说是毫无用处的,因为在显示图像之前,需要花费额外的时间进行异步调用。
我一直在想编写一个云函数来将每个图像的download url
与对应的storage reference
一起保存在数据库中,然后使用它在应用程序中显示图像。这些图像不是私人的,也不包含敏感内容,因此我不介意它们是否公开。我主要是想知道如果这样做我有什么需要担心的吗?这是不常见的原因吗?
我有一个使用Firebase存储存储图像的iOS应用。上载图像后,我将其存储参考保存在Firebase数据库中。应用加载时,它将获取各种存储空间...
您不需要“做”任何事情。