在Xcode上将用户个人资料图片上传到Firebase

时间:2019-12-17 16:03:37

标签: ios swift firebase google-cloud-firestore firebase-storage

我希望我的用户将其个人资料图片上传到UIImageView,然后在他登录时将其图片保存到Firestore并将其信息保存在数据库(Firebase)中。 目前,这是我对注册的重视(并且有效):

let current: String
let origin: String
let email = emailTextField.text!.trimmingCharacters(in: .whitespacesAndNewlines)
let username = usernameTextField.text!.trimmingCharacters(in: .whitespacesAndNewlines)
let password = passwordTextField.text!.trimmingCharacters(in: .whitespacesAndNewlines)
if originTextField.text != "" {
    origin = originTextField.text!.trimmingCharacters(in: .whitespacesAndNewlines)
}
else{
    origin = ""
}
if currentTextField.text != "" {
    current = currentTextField.text!.trimmingCharacters(in: .whitespacesAndNewlines)
}
else{
    current = ""
}
var downloadURL = ""
let newsletter = newsletterSwitch.isOn
let storage = Storage.storage()
var data = NSData()
data = self.profilePicImage.image!.jpegData(compressionQuality: 0.8)! as NSData
let filePath = "dont-be-a-stranger.appspot.com/"
let metaData = StorageMetadata()
metaData.contentType = "image/jpg"
let storageRef = storage.reference()
storageRef.child(filePath).putData(data as Data, metadata: metaData){(metaData,error) in
if let error = error {
    print(error.localizedDescription)
    return
}
else
{
    storageRef.downloadURL(completion: {(url, error) in
    if error != nil {
        print(error!.localizedDescription)
        return
    }
        downloadURL = url!.absoluteString
    })
}
}
//create user
Auth.auth().createUser(withEmail: email, password: password) { (result, err) in
    if err != nil{
        self.showError(err!.localizedDescription)
    }
    else{
        let db = Firestore.firestore()
        db.collection("users").addDocument(data: ["user_current":current, "user_email":email, "user_newsletter":newsletter, "user_origin":origin, "user_password":password, "user_username":username, "uid":result!.user.uid, "user_followers":0, "user_following":0, "user_picture": downloadURL] ) { (error) in
                if error != nil{
                    self.showError("Could not save user data")
                }
            }
        }
     self.transitionToUserHome()
    }
}

这是我得到的错误:

  

“在UIViewAlertForUnsatisfiableConstraints上创建一个符号断点,以在调试器中捕获该断点。   中列出的UIView的UIConstraintBasedLayoutDebugging类别中的方法也可能会有所帮助。   检索下载URL失败。”

0 个答案:

没有答案