首页 > 解决方案 > Firebase UI 对我不起作用(无法下载图像) swift

问题描述

我有两个问题:

  1. 我在代码中的什么位置放置 profilePicture 函数?
  2. 当返回“images/island.jpg”的数据时,我该怎么办?

你们能帮帮我吗?截至目前,该代码对我不起作用。

代码:

import UIKit
import Firebase
import FirebaseUI

class testProfileViewController: UIViewController {

    @IBOutlet var pfp: UIImageView!

    let uid = Auth.auth().currentUser!.uid
    let pathReference = Storage.storage().reference(withPath: "profileImages")

    override func viewDidLoad() {
        super.viewDidLoad()
        profilePicture()
    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
    }

    func profilePicture(){

        pfp.layer.cornerRadius = pfp.frame.size.width / 2
        pfp.clipsToBounds = true

        let imageView: UIImageView = self.pfp

        let ref = pathReference.child(uid)

        ref.getData(maxSize: 1 * 1024 * 1024) { data, error in
          if let error = error {
            print(error)
          } else {
            // Data for "images/island.jpg" is returned
            let image = UIImage(data: data!)
            print("it worked")
          }
        }

        }
}

标签: swiftfirebasefirebaseui

解决方案


由于控制器有一个 imageView 类 var, pfp,

class testProfileViewController: UIViewController {
    @IBOutlet var pfp: UIImageView!

可以直接解决。所以这段代码可以替换

let image = UIImage(data: data!)

有了这个 - 注意我们正在安全地解开可选的数据变量

if let data = data { 
   self.pfp.image = UIImage(data: data)
}

推荐阅读