【发布时间】:2019-07-13 09:15:19
【问题描述】:
我创建了一个注册页面,其中包含用户的电子邮件、用户名、全名、密码和头像。问题是firebase身份验证工作完美,而且我成功地将个人资料图片上传到firebase存储。我似乎无法将全名和用户名等其他属性写入firebase实时数据库(不是firestore)。
读写已经设置为true: 身份验证成功 图像存储成功 数据写入实时数据库不工作
没有错误被抛出。只是没有数据被写入 使用 xcode 10.2.1
@objc func handleSignUp() {
// properties
guard let email = emailTextField.text else { return }
guard let password = passwordTextField.text else { return }
guard let fullName = fullNameTextField.text else { return }
guard let username = usernameTextField.text?.lowercased() else { return }
Auth.auth().createUser(withEmail: email, password: password) { (user, error) in
// handle error
if let error = error {
print("Failed to create user with error: ", error.localizedDescription)
return
}
// set profile image
guard let profileImg = self.plusPhotoBtn.imageView?.image else { return }
// upload data
guard let uploadData = profileImg.jpegData(compressionQuality: 0.3) else { return }
// place image in firebase storage
let filename = NSUUID().uuidString
Storage.storage().reference().child("profile_images").child(filename).putData(uploadData)
Storage.storage().reference().child("profile_images/\(filename).jpg").downloadURL(completion: { (url, error) in
guard let profileImageUrl = url?.absoluteString else {return}
guard let uid = Auth.auth().currentUser?.uid else {return}
let dictionaryValues = ["name": fullName,
"username": username,
"profileImageUrl": profileImageUrl]
let values = [uid: dictionaryValues]
Database.database().reference().child("users").updateChildValues(values, withCompletionBlock: { (error, ref) in
guard let mainTabVC = UIApplication.shared.keyWindow?.rootViewController as? MainTabVC else { return }
// configure view controllers in maintabvc
mainTabVC.configureViewControllers()
// dismiss login controller
self.dismiss(animated: true, completion: nil)
})
})
}
}
【问题讨论】:
-
您一定遇到了错误,打印错误消息并编辑您的问题
-
确实如此。只是注意到我没有打印错误:)
标签: ios swift firebase firebase-realtime-database