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) } } }