Firebase使用电子邮件,密码,显示名称和照片url创建用户
根据Firebase网站,我使用此代码创建一个新用户:
firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {});
如何在创建新用户时向Auth添加显示名称和照片url?
此链接显示从Auth中的身份提供程序返回的受支持的用户数据。
您可以使用FIRUserProfileChangeRequest
类更新您的个人资料。请查看此文档。
let user = FIRAuth.auth()?.currentUser if let user = user { let changeRequest = user.profileChangeRequest() changeRequest.displayName = "Jane Q. User" changeRequest.photoURL = NSURL(string: "https://example.com/jane-q-user/profile.jpg") changeRequest.commitChangesWithCompletion { error in if let error = error { // An error happened. } else { // Profile updated. } } }
要更改/添加显示名称:
user!.createProfileChangeRequest().displayName = "Your name"
更改/添加photoURL
user!.createProfileChangeRequest().photoURL = URL(string: "image url")
您可以按照以下方式解决问题。
1)使用以下语句创建用户。
firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {});
2)上述声明的成功请对此用户进行如下认证 。
self.rootRef.authUser(email, password) // USER_ID = Here you get user_ID
3)以上function的成功将用户名和个人资料图片设置给用户如下。
usersRef.updateChildValues(dict, withCompletionBlock:
– 这里userRef包含你的userDetails / USER_ID
可能会为你工作。 我有代码,但适用于较旧的firebase版本,所以不适合你,否则我与你分享。
我认为您的意思是在Auth之后将显示名称和照片url添加到Firebase数据库。 这几乎就是我在同一注册中所做的一切。
if let email = emailField.text where email != "", let pwd = passwordField.text where pwd != ""{ FIRAuth.auth()?.createUserWithEmail(email, password: pwd, completion: { (user, error) in if error != nil { print("DEVELOPER: Unable to authenticate with Firebase using email") }else { print("DEVELOPER: Successfully authenticated with Firebase using email") if let user = user { let userData = ["provider": user.providerID, "userName": "\(user.displayName)", "profileImg": "\(user.photoURL)"] self.completeMySignIn(user.uid, userData: userData) } } }) } else { // Email and Password where not filled in } }
现在在此处在DB中添加您的个人资料图片和用户名
func completeMySignIn(id: String, userData: Dictionary){ {YourFirebaseUserURL}.updateChildValues(userData) }
我认为这应该为你解决,让我知道你是否需要其他任何东西。 或者就此事有任何进一步的问题。
func handleSignUp() { guard let userName = userNameTF.text else { return } guard let email = emailTF.text else { return } guard let password = passwordTF.text else { return } guard let image = profileImage.image else { return } continueButton.setBackgroundImage(#imageLiteral(resourceName: "inactiveButtonBG"), for: .normal) activityIndicator.startAnimating() Auth.auth().createUser(withEmail: email, password: password) { user, error in if error == nil && user != nil { print("User created!") self.uploadProfileImage(image: image) { url in if url != nil { let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest() changeRequest?.displayName = userName changeRequest?.photoURL = url changeRequest?.commitChanges { error in if error == nil { self.saveProfile(username: userName, profileImageURL: url!) { success in if success { print("Success upload of profile image") self.dismiss(animated: true, completion: nil) } } self.dismiss(animated: true, completion: nil) } else { guard let message = error?.localizedDescription else { return } self.userAlert(message: message) } } } else { self.userAlert(message: "Unable to load profile image to Firebase Storage.") } } self.dismiss(animated: true, completion: nil) } else { guard let message = error?.localizedDescription else { return } self.userAlert(message: message) } } }
- UIScrollView在将视图推送到UINavigationController后停止工作
- 将UISearchBarlocking到像Game Center那样的UITableView的顶部
- Jasoosi文摘2018年7月
- UIPrintInteractionController – 限制打印份数/获取打印份数
- 什么时候NSURLSession运行?
- iPhone的iOS是否有一个代数计算器的应用程序的expression式分析器?
- 添加自定义UIViews到UIScrollview – 如何计算位置,大小和处理缩放?
- 在UITableViewCell中加载UIView的Nib文件不能拉伸
- UITableView – 如何保持表格行固定为用户滚动