Итак, мы обновили модуль FireBase с версии 4.0 до последней версии, и неожиданно появилась возможность загружать изображения.
вот что мы делаем:
public func imageFromURL(_ urlString: String, isSecure: Bool, scaleFactor: CGFloat = 1, completionHandler: @escaping ()->() = {}) {
// TODO: Customize completion handler if needed
let handler: CompletionHandler = { (image: Image?, error: NSError?, cacheType: CacheType, imageURL: URL?) -> Void in
completionHandler()
}
//Use SDWebImage for webP images
if urlString.lowercased().contains("webp") {
self.webPImageFromUrl(urlString)
return
}
let downloader = KingfisherManager.shared.downloader
guard let imageUrl = URL(string: urlString.trim()) else {
return
}
// requestModifier will be called before image download request made.
if isSecure {
let modifier = AnyModifier { request in
var r = request
r.setValue(User.me?.transmitToken, forHTTPHeaderField: "Token")
return r
}
self.kf.setImage(with: imageUrl, placeholder: nil, options: [.downloader(downloader), .requestModifier(modifier), .scaleFactor(scaleFactor)], progressBlock: nil, completionHandler: handler)
}
self.kf.setImage(with: imageUrl, placeholder: nil, options: [.downloader(downloader), .scaleFactor(scaleFactor)], progressBlock: nil, completionHandler: handler)
}
Как видите, мы используете Kingfisher и SDWebImage, а также изображение из FireBase.
Тот же код, что и выше, используется в Firebase SDK 4.0.0 и более поздних версиях. это в FireBase новый SDK?