如何使用Swift 4在ios Firebase中存储用户数据

时间:2018-12-05 08:50:52

标签: swift firebase firebase-realtime-database firebase-authentication

@IBAction func usernameContinueBtnPressed(_ sender: Any) {

    if let email = emailFieldSignUp.text, let password = passwordFieldSignUp.text {

        Auth.auth().createUser(withEmail: email, password: password) { (user, error) in
            if let error = error {
                print(error.localizedDescription)
            }
            else{
                let userData = ["firstName": self.firstNameSignUpField.text! as String ,
                                "lastName": self.lastNameSignUpField.text! as String,
                                "username": self.usernameSignUpField.text! as String
                                ]
                let ref = Database.database().reference()
                ref.child("users").setValue(userData)

                print("Sign Up Successfully.")
                self.presentFeedPage()
            }
        }
    }
}

嗨,我真的是xcode的新手。我想知道如何修复此代码,以便当用户使用电子邮件注册时,他们可以在Firebase数据库中存储其名字,姓氏和用户名。

1 个答案:

答案 0 :(得分:1)

要保存用户数据,您需要首先初始化数据库。您在viewDidLoad()

中这样做

首先,将其添加到您的viewDidLoad()函数中:

var ref: DatabaseReference!

override func viewDidLoad() {
    super.viewDidLoad()
    ref = Database.database().reference()

   // ... //
}

之后,要将用户存储在他们自己的记录ID中,您需要指定:

self.ref.child("users").child(user.uid).setValue(userData)

或者:

@IBAction func usernameContinueBtnPressed(_ sender: Any) {

if let email = emailFieldSignUp.text, let password = passwordFieldSignUp.text {

    Auth.auth().createUser(withEmail: email, password: password) { (user, error) in
        if let error = error {
            print(error.localizedDescription)
        }
        else{
            let userData = ["firstName": self.firstNameSignUpField.text! as String ,
                            "lastName": self.lastNameSignUpField.text! as String,
                            "username": self.usernameSignUpField.text! as String
                            ]


            self.ref.child("users").child(user.uid).setValue(userData)
            print("Sign Up Successfully.")
            self.presentFeedPage()
        }
    }
}

}

我还请您参考他们的文档,我喜欢firebase的两件事,即速度和他们的文档。

Read and Write Data on iOS