我希望我的用户将其个人资料图片上传到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失败。”