【发布时间】:2024-09-18 00:35:01
【问题描述】:
我正在构建一个需要图像幻灯片作为欢迎控制器背景的应用。我的计划是将图像导入 Firebase 存储中的文件夹,设置服务功能以下载文件夹的图像并附加到模型,然后用图像填充控制器的集合视图单元格。我在正确的路径上做图像幻灯片吗?谢谢。
// 背景图像模型
struct BackgroundImage {
let backgroundImageUrl: String
init(dictionary: [String : Any]) {
self.backgroundImageUrl = dictionary["backgroundImageUrl"] as? String ?? ""
}
}
// 服务
struct BgImgs {
let backgroundImage: UIImage
}
static func fetchBackgroundImages(bgImgs: BgImgs, completion: @escaping([BackgroundImage]) -> Void) {
var backgroundImages = [BackgroundImage]()
guard let imageData = bgImgs.backgroundImage.jpegData(compressionQuality: 0.3) else { return }
let filename = NSUUID().uuidString
let storageRef = STORAGE_REF.reference(withPath: "/background_images/\(filename)")
storageRef.putData(imageData, metadata: nil) { (meta, error) in
storageRef.downloadURL { (url, error) in
guard let backgroundImageUrl = url?.absoluteString else { return }
let values = ["backgroundImageUrl" : backgroundImageUrl]
let bgImages = BackgroundImage(dictionary: values)
backgroundImages.append(bgImages)
completion(backgroundImages)
}
}
}
// 欢迎控制器
private var backgroundImages = [BackgroundImage]()
func fetchBackgroundImages() {
Service.fetchBackgroundImages(bgImgs: backgroundImages) { backgroundImages in
self.backgroundImages = backgroundImages
}
}
【问题讨论】:
-
我不确定你在这里问什么,因为问题中的代码似乎与问题不匹配。通常,图像 url 将存储在 Firestore 或实时数据库中。您将读取这些内容,遍历每个内容并从存储中检索图像。我没有看到这些图像存储在
putData中的位置,也没有被读取。也许我忽略了一些东西 - 你能澄清问题是什么,然后添加相关代码吗?
标签: ios swift firebase firebase-storage