【问题标题】:iOS/Swift: How to manage image downloading from Firebase in a feediOS/Swift:如何在 Feed 中管理从 Firebase 下载的图片
【发布时间】:2017-01-19 06:52:09
【问题描述】:

我正在尝试使用 Firebase 存储实现图像提要,可以将其想象为 Instagram 照片提要。 我的问题:

  • 我不知道我的 Firebase 参考文件夹中有多少张图片
  • 我只想显示上周拍摄的图像

我尝试像这样从参考下载图像:

let storageRef = storage.reference()


    for i in 0...10 {

        let imageRef = storageRef.child("images/" + String(i) + ".jpg")

        imageRef.dataWithMaxSize((10 * 1024 *  1024), completion: { (data, error) -> Void in
            if (error != nil) {
                print(error)
            } else {
                let image: UIImage! = UIImage(data: data!)
                self.downloadedPhotos.append(image) //downloadedPhotos is an array of UIImages

                self.configureFeed() //takes care of some UI

            }
        })
    }

这里我遇到了一个明显的问题:我只下载了 10 张图片,分别称为“1”、“2”、...、“10”

  • 当用户上传图片时,您建议使用哪种方式命名图片?
  • 如何跟踪有多少图像?
  • 如何从参考中删除那些超过一周的图片?
  • 我应该使用像 Kingfisher 这样的 Image Cashing 库,还是采用上述风格?

非常感谢大家的帮助!

【问题讨论】:

    标签: ios swift image firebase firebase-storage


    【解决方案1】:

    让我们一次处理这些:

    • 当用户上传图片时,你会用什么样的方式来命名图片? 建议?

    我会看看其他许多这样的问题:Retrieving image from Firebase Storage using Swift

    • 如何跟踪有多少图像?

    见上文。

    • 如何从参考中删除那些早于 周?

    您可以在一定时间后使用Object Lifecycle Management 删除图像。从数据库中删除它们会更难——也许与Google Cloud Functions GCS notifications 的集成可以同步它。

    • 我应该使用像 Kingfisher 这样的 Image Cashing 库还是会
      你喜欢上面的风格吗?

    我完全建议在从实时数据库中提取下载图像后使用像 SDWebImagePINRemoteImage 这样的图像加载器。

    【讨论】:

    • 感谢您的帮助,期待深入研究这些技术。
    • 真的很高兴它确实成功了。存储和使用存储在实时数据库中的下载 URL 的组合使一切顺利。非常感谢您提供的链接。
    猜你喜欢
    • 2019-10-04
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 2016-11-03
    • 1970-01-01
    相关资源
    最近更新 更多