我有一个用于存储图像的iOS应用程序Firebase Storage。上传图像后,我将其保存storage reference在我的Firebase Database. 当应用程序加载时,它storage references从数据库中获取各种信息并使用该FirebaseUI方法显示其相应的图像,如下所示:
let storageRef = Storage.storage().reference(forURL: imageUrl)
imageView.sd_setImage(with: storageRef, placeholderImage: nil)
Run Code Online (Sandbox Code Playgroud)
这很好用……但速度很慢。
在寻找加速解决方案时,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
}
}
Run Code Online (Sandbox Code Playgroud)
但是,以这种方式获取它对我的目的来说毫无用处,因为在显示图像之前使异步调用需要额外的时间......
我一直在考虑编写一个云函数来将每个图像download …
google-cloud-storage firebase firebase-realtime-database firebaseui firebase-storage