Firebase使用电子邮件,密码,显示名称和照片网址创建用户

Ale*_*lex 9 ios firebase swift firebase-authentication

根据Firebase网站,我使用此代码创建一个新用户:

firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {});
Run Code Online (Sandbox Code Playgroud)

如何在创建新用户时向Auth添加显示名称和照片网址?

链接显示从Auth中的身份提供程序返回的受支持的用户数据.

EI *_*2.0 19

您可以使用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.
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)

  • 在使用电子邮件和密码创建新用户时,我们无法同时添加显示名称和photourl? (4认同)
  • 不......没有其他方法......创建后您需要更新您的用户个人资料 (2认同)
  • 我现在可以从代码中获取 displayName 和 photoUrl 。这两个字段未显示在 Firebase 身份验证控制台中。它应该是这样的吗? (2认同)

Mod*_*era 5

我认为这应该可以解决您的问题,如果您需要其他任何信息,请告诉我。或者对此事还有任何疑问。

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

}
Run Code Online (Sandbox Code Playgroud)