【问题标题】:How to retrieve url from firebase database and show url as a image in imageview (SWIFT)?如何从firebase数据库中检索url并将url显示为imageview(SWIFT)中的图像?
【发布时间】:2017-12-25 23:29:42
【问题描述】:

我正在尝试从 firebase 数据库中获取图像的 Url,并将该 url 显示为 imageview (iOS) 中的图像。

下面是数据库图片

我该怎么做? 我刚开始使用 Xcode,任何帮助将不胜感激

【问题讨论】:

    标签: ios firebase firebase-realtime-database swift4


    【解决方案1】:
    func showImage() {
    
        Database.database().reference().child("Images").child("abcd").observeSingleEvent(of: .value, with: { snapshot in
            if let url = snapshot.value as? String {
                URLSession.shared.dataTask(with: URL(string: url)!) { data, response, error in
                    if error == nil {
                        let image = UIImage(data: data!)
                        imageView.image = image
                    }
                }.resume()
            }
        })
    }
    

    【讨论】:

    • 谢谢!它工作,但它需要太多时间来下载。有什么办法可以加快进程,比现在更快地显示?
    • 不,这是最短、最快的方法。实际上在这种情况下,observeSingleEvent 应该执行得很快(它只下载一个字符串),但是 URLSession.shared.dataTask 可能执行得很慢,因为图像的大小可能很大。
    • 所以你应该持有一个较小尺寸的图像。这应该会有所帮助。
    • Ok 将尝试缩小图像尺寸。 Firebase 离线可以帮助加快图像速度?
    • 我没有离线使用 Firebase 的经验,但我知道它提供了用于在本地保存数据的工具。因此,当网络中断时,您可以使用之前下载的所有缓存数据。因此,在离线时,您可以通过 observeSingleEvent 检索 url,并且只有在您之前在线时获取过此 url 时,它才会为您提供结果。但在任何情况下,您都必须从 url 下载图像,并且图像可能存储在 Storage 中。存储无法为您处理磁盘持久性,只有数据库。所以,我认为这对你没有帮助。
    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 2020-11-25
    • 1970-01-01
    • 2020-05-09
    • 2016-10-07
    • 2021-07-18
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多