Firebase注册用户,电子邮件和密码

时间:2017-04-01 16:24:08

标签: ios swift firebase

离开Parse并搬到Firebase后,我遇到了一个问题,即只能通过电子邮件和密码注册,我怎样才能让Firebase存储用户名呢?

2 个答案:

答案 0 :(得分:2)

试试这个...

FIRAuth.auth()?.createUser(withEmail: emailField.text!, password: passwordField.text!, completion: { (user: FIRUser?, error) in
            if error != nil {
                print(error)
                return

            } else { 
            print("User Created...") }

            guard let uid = user?.uid else { return }

            // You can set these values to whatever you want, plus add more!
            let values = ["email": emailField.text!, "username": usernameField.text!] as [String : Any]

         // Then pass your values into another function called 'RegisterUserIntoDatabase' 
         // which creates the user in your Firebase Database...   

            self.registerUserIntoDatabase(uid, values: values as [String : AnyObject])
        })


private func registerUserIntoDatabase(_ uid: String, values: [String: AnyObject]) {
    // Adding User Info
    let ref = FIRDatabase.database().reference()
    let usersReference = ref.child("users").child(uid)

    usersReference.updateChildValues(values, withCompletionBlock: { (err, ref) in
        if err != nil {
            print(err)
            return
        }
        print("Successfully Added a New User to the Database")
    })
}

答案 1 :(得分:0)

func handleRegister(email:String, password:String, username:String) {

    //Create User
    FIRAuth.auth()?.createUser(withEmail: email, password: password, completion: { (user, err) in

        if err != nil {
            print(err!.localizedDescription)
            return
        }

        //Success! User Created!

        if let userID = user?.uid {

            //Create User Profile
            let databaseRef = FIRDatabase.database().reference()
            let usersRef = databaseRef.child("Users").child(userID)

            let usernameValue = ["username":username]

            usersRef.updateChildValues(usernameValue, withCompletionBlock: { (err, ref) in

                if err != nil {
                    print(err!.localizedDescription)
                    return
                }

                //Profile created and updated!
                //You can use perform segue or present controller to go to another controller...
            })

        }

    })

}
相关问题