无法从 Firebase 获取图像到表视图 [关闭]

Posted

技术标签:

【中文标题】无法从 Firebase 获取图像到表视图 [关闭]【英文标题】:Unable to fetch Images from Firebase to Table View [closed] 【发布时间】:2019-08-12 11:52:16 【问题描述】:

Screenshot TableView有没有办法从downloadURL(link) 转换为UIImage 到我的TableViewController

func loadPost()                   
    Database.database().reference().child("Posts").observe(.childAdded, with:  (snapshot: DataSnapshot) in
            if let userDict = snapshot.value as? [String: Any] 
                let photoUrlString = userDict["photoUrl"] as! String
                let post = Posts(photoUrlString: photoUrlString)
                self.posts.append(post)
                print(self.posts)
                self.tableView.reloadData()
              
        )
    

【问题讨论】:

【参考方案1】:

试试这个下载图片。您可以在 cellForRowAtIndexPath 中使用它

func loadimage(_ url: URL)

    DispatchQueue.global().async  
         if let data1 = try? Data(contentsOf: url)
           if let img = UIImage(data: data1)
             DispatchQueue.main.async 
                cell.imgView.image = img
             
           
        
    

【讨论】:

对不起,我不明白。 在这种方法中,您只需要传递图像 url,它将返回该 url 上的图像。一旦您在 tableview 单元格上显示图像。 谢谢!对于示例代码!我用“do, loop”语句做到了。【参考方案2】:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        let cell = tableView.dequeueReusableCell(withIdentifier: "myCell", for: indexPath)

        cell.textLabel?.text = posts[indexPath.row].photoUrl

        let postImage = posts[indexPath.row]
        if let photoUrl = URL(string: postImage.photoUrl)
        
            do 
                let data = try Data(contentsOf: photoUrl)
                cell.imageView?.image = UIImage (data: data)
             catch 
                print("")
            
        

       return cell
    

【讨论】:

以上是关于无法从 Firebase 获取图像到表视图 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

获取firebase图像的URL的成本[关闭]

Firestore/Firebase 无法从文件夹中获取图像

无法从 firebase 回收器视图中的 firebase 实时数据库中获取嵌套数据

图像视图随 Firebase 适配器不断变化

将图像从Firebase加载到我的表视图时出错

将 Firebase 数据合并到表视图中