Что вам нужно сделать, это реализовать базу данных Firebase и Firebase Auth.Это две разные вещи.У вас может быть миллион человек, прошедших аутентификацию с вашим приложением, и при этом в вашей базе данных ничего не останется.
Существуют обратные вызовы, которые возвращают информацию о пользователе после создания учетной записи.В рамках этих обратных вызовов вы должны вызывать базу данных Firebase для получения этих пользовательских данных и сохранять их в базе данных Firebase.
Однако я создал стартовый проект, который сделает все это за вас.Это даже позволяет вашим пользователям проходить аутентификацию через Facebook.Проверьте это: https://github.com/ChopinDavid/FirebaseLoginSignup
Если вы хотите сделать это самостоятельно, однако, вот пример того, как хранить пользовательские данные после обратного вызова Firebase Auth:
func createUserAcct(completion: @escaping (Bool, Error?) -> Void) {
Auth.auth().createUser(withEmail: emailTextField.text!, password: passwordTextField.text!) { (user, error) in
if error == nil {
if let firebaseUser = Auth.auth().currentUser {
//After creating the user, I then take the user's inputs (email, display name, etc.) and create a profile change request
let changeRequest = firebaseUser.createProfileChangeRequest()
//Storing photoURLs requires that we make use of firebase Storage. We can upload an image, get a callback with the URL where the image was stored, and update our user's photoURL
changeRequest.photoURL = URL(string: "nil")
changeRequest.displayName = self.nameTextField.text!
changeRequest.commitChanges { error in
if let error = error {
// An error happened.
completion(false, error)
} else {
//This is where we actually create an "object" from the inputs the user has given us.
//We then take this object and store it in our database under "Users/{ the user's auth uid }"
let userData = ["email" : self.emailTextField.text!,"name": self.nameTextField.text!] as [String : Any]
Database.database().reference().child("Users").child(firebaseUser.uid).updateChildValues(userData)
}
}
}
} else {
// An error happened.
completion(false, error)
}
}
}