gpt4 book ai didi

ios - 除 fireBase 显示的图像外的所有数据

转载 作者:行者123 更新时间:2023-11-30 11:11:00 24 4
gpt4 key购买 nike

我正在开发一个应用程序,用户创建一个帐户并将图像上传到 Firebase 数据库,然后该图像显示在个人资料页面上。它似乎将图像存储在数据库中,但个人资料页面没有检索图像来显示它。它将所有其他信息传递到页面(电子邮件、用户名等),但不传递个人资料图片。

这是用于获取要在个人资料页面上显示的数据的代码:

if let user = DataService.dataService.currentUser {
username.text = user.displayName
email.text = user.email
if user.photoURL != nil {
if let data = NSData(contentsOf: user.photoURL!){
self.profileimage!.image = UIImage.init(data: data as Data)
}
}
}
else {
// No user is signed in
}

这是将图像存储到 firebase 的代码:

let filepath = "profileimage/\(String(describing: Auth.auth().currentUser!.uid))"
let metadata = FirebaseStorage.StorageMetadata()
metadata.contentType = "image/jpeg"

self.storageRef.child(filepath).putData(data as Data, metadata: metadata, completion: {(metadata, error) in
if let error = error {
print ("\(error.localizedDescription)")
return
}
)

提前致谢!

最佳答案

NSData(contentsOf:_) 只能用于本地文件路径,不能用于基于网络的 URL。详细了解原因:https://developer.apple.com/documentation/foundation/nsdata/1413892-init

我通常在 UIImageView 上创建一个扩展来从 URL 加载图像,下面是一个示例:

extension UIImageView
{
func loadImageUsingUrlString(_ urlString: String) {

self.image = nil

guard let url = URL(string: urlString) else { return }

URLSession.shared.dataTask(with: url, completionHandler: { (data, response, error) in

if let error = error {
print(error)
return
}

DispatchQueue.main.async(execute: {

if let downloadedImage = UIImage(data: data!) {
self.image = downloadedImage
}
})
}).resume()
}
}

然后你可以在你想要的imageView上调用它:

yourImageView.loadImageUsingUrlString(yourURL)

关于ios - 除 fireBase 显示的图像外的所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52175023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com