从firebase加载图像并缓存swift3
Posted
技术标签:
【中文标题】从firebase加载图像并缓存swift3【英文标题】:load image from firebase and caching swift3 【发布时间】:2017-06-29 09:51:59 【问题描述】:我有一个小问题。我从 Firebase 获取图像,我正在尝试添加缓存,因为我尝试过这种方式,但像这样它们没有被缓存:
我声明了这个变量
var uid:String = ""
var partitionUrl:String = ""
var titre:String = ""
这个链接到firebase。
let storageRef = FIRStorage.storage().reference()
let databaseRef = FIRDatabase.database().reference().child("canticles")
app使用uid获取标题和图片并在UIlabel和UIImageView中展示
@IBOutlet weak var titleCantique: UILabel!
@IBOutlet weak var partitionImageView: UIImageView!
override func viewDidLoad()
super.viewDidLoad()
getPartitionImage()
override func viewWillAppear(_ animated: Bool)
print("partition uid : " + uid)
print("partition URL : " + partitionUrl)
print("partition TITLE : " + titre)
self.titleCantique.text = titre
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
func getPartitionImage()
DispatchQueue.main.async(execute:
self.storageRef.child(self.partitionUrl).data(withMaxSize: 10*1024*1024, completion: (data, error) in
if error != nil
print(error!)
return
let image = UIImage(data: data!)
self.partitionImageView.image = image
)
)
问题是当手机未连接时,图像没有出现。 我可以通过为图像添加缓存然后离线显示来解决这个问题?
【问题讨论】:
【参考方案1】:我就是这样进行的
第一次,我用 cocoapod 添加了 FirebaseStorageCache
在 swift 文件中:
import UIKit
import Firebase
import FirebaseStorageCache
并像这样实现了我的 getPartitionImage 函数
func getPartitionImage()
let ref: FIRStorageReference = self.storageRef.child(self.partitionUrl)
FirebaseStorageCache.main.get(storageReference: ref) data in
self.partitionImageView.setImage(storageReference: ref)
【讨论】:
以上是关于从firebase加载图像并缓存swift3的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Firebase 存储中的文件夹加载图像并在其他地方使用它