【问题标题】:Retrieving Image From Firebase从 Firebase 检索图像
【发布时间】:2017-06-07 13:22:53
【问题描述】:

应用程序运行成功,但图像未显示在表格单元格中。

let dbRef = FIRDatabase.database().reference().child("restaurants/restaurantImage")
    dbRef.observe(.childAdded, with: {(snapshot) in
        let downloadURL = snapshot.value as! String
        let storageRef = FIRStorage.storage().reference(forURL: downloadURL)
        storageRef.data(withMaxSize: 10 * 1024 * 1024) { (data, error) -> Void in
            let pic = UIImage(data: data!)
            self.picArray.append(pic!)

        }
        self.tableViewHongKong.reloadData()
    })

【问题讨论】:

    标签: ios swift firebase firebase-realtime-database firebase-storage


    【解决方案1】:

    您应该在完成处理程序中移动self.tableViewHongKong.reloadData()。使用您当前的代码,您可以在异步函数完成之前重新加载表。

    除非您 100% 确定数据会真正返回并且 UIImage 初始化程序会成功,否则不应强制展开。

    let dbRef = FIRDatabase.database().reference().child("restaurants/restaurantImage")
        dbRef.observe(.childAdded, with: {(snapshot) in
            let downloadURL = snapshot.value as! String
            let storageRef = FIRStorage.storage().reference(forURL: downloadURL)
            storageRef.data(withMaxSize: 10 * 1024 * 1024) { (data, error) -> Void in
                guard let imageData = data, let pic = UIImage(data: imageData) else { return }
                self.picArray.append(pic)
                self.tableViewHongKong.reloadData()
            }
        })
    

    【讨论】:

      【解决方案2】:

      图像没有出现,因为您在将任何图片附加到数组之前重新加载表格视图。 data(withMaxSize: 启动一个异步请求,在您重新加载表视图后获得响应。

      如果您将self.tableViewHongKong.reloadData() 移动到data(withMaxSize: 响应块内,您将在附加每个成功加载的图像后重新加载表格视图。

      【讨论】:

        【解决方案3】:

        即使 Callam 已经回答了你的问题,我仍然会发布这个,因为它可能是更好的方法。

        您可以使用 Glide 与 Firebase 配合得非常好,而且它在 Firebase Docs 中有详细记录,而不是编写所有代码来显示一张图像。看看吧,当我开始使用它时,它让我一切都变得轻松多了。

        https://firebase.google.com/docs/storage/android/download-files#downloading_images_with_firebaseui

        【讨论】:

          猜你喜欢
          • 2016-02-12
          • 2017-12-17
          • 2020-08-05
          • 1970-01-01
          • 2022-01-22
          • 2020-06-14
          • 2020-10-23
          • 2017-08-30
          • 2021-07-26
          相关资源
          最近更新 更多