【发布时间】:2020-05-24 14:23:24
【问题描述】:
我有两个问题:
- profilePicture 函数应该放在代码的什么位置?
- 当“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")
}
}
}
}
【问题讨论】:
-
您可能已经尝试了很多东西,但要尝试的导入操作是实际实现下载文件的代码。入门指南Download files 中有一个很好的示例。试一试,通过更新问题让我们知道您遇到的问题。此外,请注意路径的定义方式 - 在问题中它当前是 your_storage/profileImages/profileImages/uid 这可能不是您想要的。
-
问题是:你描述的路径,其实是我需要的照片的路径@Jay
-
真的吗? /profileImages/profileImages/?正如我在上面的评论中提到的,问题中没有实际下载文件的代码。
-
这样更好,但由于您的控制器有一个 pfp 类 var,它是一个 UIImageView,您可以将这个
let image = UIImage(data: data!)替换为if let data = data { self.pfp.image = UIImage(data: data) }。除此之外,什么不起作用?为了帮助我们帮助您,请进行一些进一步的故障排除以找出问题所在,然后将其包含在问题中。您可以从添加断点开始,然后单步执行代码,看看哪里出错了。 -
太棒了!我将我的评论作为答案。既然它有帮助,请接受它,以便它可以帮助其他人。 How To Accept
标签: swift firebase firebaseui