SDWebImage无法使用Firebase存储图像下载
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SDWebImage无法使用Firebase存储图像下载相关的知识,希望对你有一定的参考价值。
我正在使用一个项目,该项目使用Firebase存储API并从Firebase获取一些图像。
使用NSData
逻辑与服务器下载图像一起工作并将其显示到我的应用程序中。
但同样的事情不是通过SDWebImage
SDK工作,因为我需要在SDWebImage中组合firebase网址,因为firebase文档也提到绑定它并用于下载图像。通过SDWebImage存储
下面是我的鳕鱼ewhixh不能正常工作我的应用程序。
FIRStoragereference *ref = [[FIRStorage storage] referenceWithPath:myfilepath];
[Cell.imgDetail sd_setImageWithStorageReference:ref placeholderImage:nil completion:^(UIImage *image,
}];
错误:在sd Web图像中找不到方法
请帮帮我,我被困在这里。
我使用了firebase withSDWebImage,您可以使用以下方法进行StorageReference
对于此方法,您需要为UIImageView添加一个类别文件
#import "UIImageView+FirebaseStorage.h"
你可以在FireBaseUIIOS找到这个文件
FIRStorageReference *storageRef = [[FIRStorage storage]
referenceWithPath:[NSString stringWithFormat:@"/Folder/images/%@",<IMAGE_NAME>]];
[cell.imgDetail sd_setImageWithStorageReference:storageRef
placeholderImage:nil
completion:^(UIImage *image,
NSError *error,
SDImageCacheType
cacheType,
FIRStorageReference *ref) {
if (error != nil) {
NSLog(@"Error loading image: %@", error.localizedDescription);
}
}];
你也可以使用上面的@ Shafi的SDWebImage方法,但为此你需要提供如下所示的完整的firebase存储URL。
完整网址:storageRef.fullPath
希望这会对你有所帮助。
FirebaseUi已经为SDWebImage提供了自己的小扩展。
只需在Podfile中添加以下pod即可
pod'FirebaseUI / Storage'
并使用以下代码行来使用Firebase存储参考缓存图像。
// Load the image using SDWebImage
[imageView sd_setImageWithStorageReference:reference placeholderImage:placeholderImage];
希望这会帮助你。
我通过实现SDWebImage的其他方法解决了这个问题
SDWebImageManager.shared().downloadImage(with:"Your Firebase Url", options: .refreshCached, progress: nil, completed: { (image, error, cache, isDownloader, url) in
if image != nil {
YourImageView.image = image
}
})
这是在Swift中,但您可以在Objective-C中实现它。
这是一个链接: https://github.com/rs/SDWebImage/issues/845
- 使用以下命令将
BridgingHeader.h
文件添加到项目中:
#import <FirebaseStorageUI.h>
- 然后在你的班上:
import UIKit
import FirebaseStorageUI // <-- don't forget to import this
func getImage() {
let reference = storageRef.child(imageFileName)
myImageView.sd_setImage(with: reference, placeholderImage: UIImage(named: "bg"), completion: { (image, error, cacheType, storageRef) in
//...
})
}
别忘了像这样导入SDWebImage模块(Swift)
@import SDWebImage
或者对于Obj-C
#import <SDWebImage/UIImageView+WebCache.h>
对于Swift 4(完美工作)
请先安装这个PODS:
pod 'Firebase/Storage'
pod 'SDWebImage', '~> 4.0'
pod 'FirebaseUI/Storage'
然后在你的Xcode 9+中:
import FirebaseStorage
import SDWebImage
import FirebaseUI
let reference = Storage.storage().reference(withPath: "your image path")
let imageView: UIImageView = self.imageView
imageView.sd_setImage(with: reference)
以上是关于SDWebImage无法使用Firebase存储图像下载的主要内容,如果未能解决你的问题,请参考以下文章