Q:

Firebase sign up with Swift

So, I'm having an issue with the code for some reason. I have a Swift app and a sign up view controller that should register users with email in Firebase as a backend (I've upgraded the app to latest Firebase version). I've created some break points to see where it stops working and it turns out that after: 
FIRAuth.auth()?.createUserWithEmail(email!, password: password!, completion: {
            user, error in

it doesn't execute the whole checking for error or success code, it just moves outside of the scope of the createUserWithEmail method. The email and password have values and I see them, but it just continues outside of the scope of the method. I have imported Firebase as a module, it doesn't throw any warning or errors during build time or at compile time
I don't know why this occurs though. Here's the code for the signUp button:
@IBAction func signUpTapped(sender: ButtonWhite) {

    let email = emailTextField.text
    let password = passwordTextField.text
    let repeatPassword = repeatPasswordTextField.text

    if email != "" && password != "" && repeatPassword != "" {

        if password == repeatPassword {

            FIRAuth.auth()?.createUserWithEmail(email!, password: password!, completion: {
                user, error in

                print(user)
                // Error Case 
                if error != nil {

                    if let errorCode = FIRAuthErrorCode(rawValue: error!.code) {
                        switch errorCode {
                        case .ErrorCodeInvalidCredential:
                            showAlert(title: "Invalid Credentials!", msg: "Please, try again.", actionButton: "OK", viewController: self)
                        case .ErrorCodeNetworkError:
                            showAlert(title: "Network Error!", msg: "An error occurred while attempting to contact the authentication server. Try again", actionButton: "OK", viewController: self)
                        case .ErrorCodeOperationNotAllowed:
                            showAlert(title: "Bummer!", msg: "The administrator disabled sign in with the specified identity provider", actionButton: "OK", viewController: self)
                        case .ErrorCodeEmailAlreadyInUse:
                            showAlert(title: "Oops!", msg: "The email used to attempt a sign up already exists. Please, try again", actionButton: "OK", viewController: self)
                        case .ErrorCodeInvalidEmail:
                            showAlert(title: "Error", msg: "The email is invalid. Try again.", actionButton: "OK", viewController: self)
                        case .ErrorCodeTooManyRequests:
                            showAlert(title: "Error", msg: "Too many requests were made to a serve method", actionButton: "OK", viewController: self)
                        case .ErrrorCodeAccountExistsWithDifferentCredential:
                            showAlert(title: "Error", msg: "User account exists with different credentials than currently submitted. Try again.", actionButton: "OK", viewController: self)

                        default:
                            showAlert(title: "Ups!", msg: "An error occur. Please, try again.", actionButton: "OK", viewController: self)
                        }
                    }

                    SVProgressHUD.dismiss()

                } else {

                // Success Case

                    // Create Firebase User
                    let userData = ["provider" : "email", "password": password!]
                    DataService.ds.createFirebaseUser(user!.uid, user: userData)
                    print("firebase user created!")
                    self.loginUser()
                }
            })

        } else {
            showAlert(title: "Password Mismatch", msg: "The passwords you've entered do not match. Please, try again", actionButton: "OK", viewController: self)
        }

A:

As long as there is no error, FIRAuth.auth()?.createUserWithEmail will create the user immediately, there would be no need for 
// Create Firebase User
let userData = ["provider" : "email", "password": password!]
DataService.ds.createFirebaseUser(user!.uid, user: userData)
print("firebase user created!")
self.loginUser()

check your firebase console to see if users have been created

