我有一个基本的用户创建活动,名称,电子邮件和密码。我正在尝试保存用户的个人资料图片,并在他们登录后将其加载到他们的个人资料页面中。我该怎么办?
我已经在数据库中存储了用户的姓名和电子邮件,但是我不确定如何保存他们的个人资料图片。我尝试在堆栈溢出时搜索问题,但发现的大多数解决方案都太旧了。
func saveUserProfile(){
let userRefrence = Database.database().reference().child("Users").childByAutoId()
let userDictionary:[String:String] = ["name":users.name, "email" :users.userEmail]
self.userRefrence.setValue(userDictionary)
}
答案 0 :(得分:0)
如果您已经使用Firebase,则需要使用Firebase Storage保存图像。
在这里,我们获取对存储的引用并将图像转换为数据。
let fileName = NSUUID().uuidString
let profileImagesRef = Storage.storage().reference().child("profile_images/\(fileName)")
guard let uploadData = UIImageJPEGRepresentation(image, 0.3) else {
return
}
然后我们实际上将数据保存到Firebase Storage
profileImagesRef.putData(uploadData, metadata: nil, completion: { (metadata, error) in
if let error = error {
return
}
// After the image has been successfully uploaded we need to grab its download url
profileImagesRef.downloadURL(completion: { (downloadURL, error) in
if let error = error {
return
}
guard let downloadURL = downloadURL else {
return
}
print("successfully fetched download URL: \(downloadURL.absoluteString)")
})
})
您要将downloadUrl保存到您的用户模型,并在加载个人资料时使用它来下载您的个人资料图片。
您可以在Firebase文档中阅读它。