新创建的用户不会保存到Firebase数据库

时间:2018-09-25 22:23:04

标签: firebase firebase-realtime-database swift4

因此,我在创建新用户并将其用户信息(例如名字,姓氏和电子邮件)上载/存储到Firebase数据库的代码遇到麻烦。每当我创建一个用户并进入我的Firebase数据库时,就不会出现新用户。

Auth.auth().createUser(withEmail: usernameTextField.text!, password: passwordTextField.text!) { (user, error) in

        if error != nil {

            print(error!.localizedDescription)

            return

        }

        let ref = Database.database().reference()

        let usersReference = ref.child("users")

        let uid = user?.user.uid

        let newUserReference = usersReference.child(uid!)

        newUserReference.setValue(["username": self.usernameTextField.text!,"firstname": self.firstnameTextField.text!, "lastname": self.lastnameTextField.text!,"email": self.emailTextField.text!])

2 个答案:

答案 0 :(得分:0)

这应该有效:

@objc func handleSignUp() {
let ref = Database.database().reference
    Auth.auth().createUser(withEmail:usernameTextField.text!, password: passwordTextField.text!) { (user, error) in

        if error != nil {
            print(error as Any)
            return
        }
        guard let uid = user?.user.uid else {
            return
        }

        // successfully authenticated user
            let values = ["name": "some name", "email": "some email", "username": "your username", "userId": user?.user.uid]
            let userReference = ref.child("user").child(uid)

            let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest()
            changeRequest?.displayName = self.usernameField.text
            changeRequest?.commitChanges(completion: nil)

            userReference.updateChildValues(values, withCompletionBlock: { (err, ref) in

                if err != nil {
                    print(err as Any)
                    return
                }
      // add your code here to upload user information to FirebaseDatabase
})

希望您的问题得到解决,并且解决方案可以满足您的目的

答案 1 :(得分:0)

我不小心写了

Auth.auth().createUser(withEmail: usernameTextField.text!, password: passwordTextField.text!

代替:

Auth.auth().createUser(withEmail: emailTextField.text!, password: passwordTextField.text!) { (user, error) in

    if error != nil {

        print(error!.localizedDescription)

        return

    } ...