当我的用户注册时,他们使用的是直接进入 firebase 的个人资料图片。图像正确上传到 Firebase 存储中,但一旦它出现在数据库中,配置文件图像 URL 也会在调试区域中丢失,图像链接显示为可选。我应该在此代码中进行哪些更改才能将图像链接正确上传到 Firebase 数据库?
if let AuthData = AuthDataResult {
print(AuthData.user.email)
var dict : Dictionary < String, Any> = [
"uid": AuthData.user.uid,
"username": self.UsernameTextField.text!,
"email": AuthData.user.email,
"ProfileImageUrl": "",
]
let storage = Storage.storage()
let storageRef = storage.reference()
let imageName = UUID().uuidString
let imageReference = Storage.storage().reference().child(imageName)
//2. Compress quality
if let uploadData = self.ProfileImage.image?.jpegData(compressionQuality: 0.5){
//3. Save image as .jpeg
let metaDataForImage = StorageMetadata()
metaDataForImage.contentType = "image/jpeg"
//4. Add the data to Firebase Storage
imageReference.putData(uploadData, metadata: metaDataForImage) { (meta, err) in
if let err = err{
print(err.localizedDescription)
} else {
//5. Retrieving the image URL
imageReference.downloadURL { (url, err) in
if let err = err{
print(err.localizedDescription)
} else {
//6. Print the complete URL as string
let urlString = url?.absoluteString
print(urlString)
}
Database.database().reference().child("users").child(AuthData.user.uid).updateChildValues(dict, withCompletionBlock: { (error,ref) in
if error == nil {
print("Done")
return
}