iOS应用程序和firebase登录,密码错误,没有任何错误

时间:2019-03-19 20:53:11

标签: swift xcode firebase

这是我的代码

import UIKit
import Firebase


class LoginVC: UIViewController,UITextFieldDelegate {

@IBOutlet weak var emailTextField: RoundedCornerTextField!

@IBOutlet weak var passwordTextField: RoundedCornerTextField!

@IBOutlet weak var segmentedControl: UISegmentedControl!

@IBOutlet weak var authBtn: RoundedShadowButton!

override func viewDidLoad() {
    super.viewDidLoad()

    emailTextField.delegate = self
    passwordTextField.delegate = self

    // Do any additional setup after loading the view.
    view.bindToKeyboard()

    let tap = UITapGestureRecognizer(target: self, action: #selector(tapHandler(sender:)))
    self.view.addGestureRecognizer(tap)
}

@IBAction func dissmissBtnPressed(_ sender: Any) {
    self.dismiss(animated: true, completion: nil)

}

@objc func tapHandler(sender : UITapGestureRecognizer) {

    self.view.endEditing(true)
}

@IBAction func authBtnWasPressed(_ sender: Any) {

    //TODO : SingIn methods here

    if emailTextField.text != nil && passwordTextField.text != nil {

        authBtn.animatedButton(shouldload: true, withMessage: nil)
        self.view.endEditing(true)

        if let email = emailTextField.text, let password = passwordTextField.text {
            Auth.auth().signIn(withEmail: email, password: password, completion: { (authResult, error) in
                if error == nil {
                    if let user = authResult?.user {
                        if self.segmentedControl.selectedSegmentIndex == 0 {
                            let userData = ["provider": user.providerID] as [String: Any]
                            DataService.instance.createFirbaseDBUser(uid: user.uid, userData: userData, isDriver: false)

                        } else {
                            let userData = ["provider" : user.providerID, "userIsDriver" : true, "isPickUpModeEnabaled" : false , "driverIsOnTrip": false ] as [String : Any]
                            DataService.instance.createFirbaseDBUser(uid: user.uid, userData: userData, isDriver: true)
                        }
                    }
                 print("Email user authenticated with firebase")

                    self.dismiss(animated: true, completion: nil)
                }else {

                    Auth.auth().createUser(withEmail: email, password: password, completion: { (AuthDataResult, error) in

                        if error != nil {
                            if let errorCode = AuthErrorCode(rawValue: error! ._code){

                                switch errorCode {


                                case .invalidEmail:
                                    print("wrong email")
                                case .invalidCustomToken:
                                    print ("invalid creadentials")
                                case .customTokenMismatch:
                                    print("Wrong password or emial")
                                case .invalidCredential:
                                    print("invalid credential")


                                case .userDisabled:
                                    print("unexpected error")
                                case .operationNotAllowed:
                                     print("unexpected error")
                                case .emailAlreadyInUse:
                                     print("unexpected error")
                                case .wrongPassword:
                                     print("unexpected error")
                                case .tooManyRequests:
                                     print("unexpected error")
                                case .userNotFound:
                                     print("unexpected error")
                                case .accountExistsWithDifferentCredential:
                                     print("unexpected error")
                                case .requiresRecentLogin:
                                     print("unexpected error")
                                case .providerAlreadyLinked:
                                     print("unexpected error")
                                case .noSuchProvider:
                                     print("unexpected error")
                                case .invalidUserToken:
                                     print("unexpected error")
                                case .networkError:
                                     print("unexpected error")
                                case .userTokenExpired:
                                     print("unexpected error")
                                case .invalidAPIKey:
                                     print("unexpected error")
                                case .userMismatch:
                                     print("unexpected error")
                                case .credentialAlreadyInUse:
                                     print("unexpected error")
                                case .weakPassword:
                                     print("unexpected error")
                                case .appNotAuthorized:
                                     print("unexpected error")
                                case .expiredActionCode:
                                     print("unexpected error")
                                case .invalidActionCode:
                                     print("unexpected error")
                                case .invalidMessagePayload:
                                     print("unexpected error")
                                case .invalidSender:
                                     print("unexpected error")
                                case .invalidRecipientEmail:
                                     print("unexpected error")
                                case .missingEmail:
                                     print("unexpected error")
                                case .missingIosBundleID:
                                     print("unexpected error")
                                case .missingAndroidPackageName:
                                     print("unexpected error")
                                case .unauthorizedDomain:
                                     print("unexpected error")
                                case .invalidContinueURI:
                                     print("unexpected error")
                                case .missingContinueURI:
                                     print("unexpected error")
                                case .missingPhoneNumber:
                                     print("unexpected error")
                                case .invalidPhoneNumber:
                                     print("unexpected error")
                                case .missingVerificationCode:
                                     print("unexpected error")
                                case .invalidVerificationCode:
                                     print("unexpected error")
                                case .missingVerificationID:
                                     print("unexpected error")
                                case .invalidVerificationID:
                                     print("unexpected error")
                                case .missingAppCredential:
                                     print("unexpected error")
                                case .invalidAppCredential:
                                     print("unexpected error")
                                case .sessionExpired:
                                     print("unexpected error")
                                case .quotaExceeded:
                                     print("unexpected error")
                                case .missingAppToken:
                                     print("unexpected error")
                                case .notificationNotForwarded:
                                     print("unexpected error")
                                case .appNotVerified:
                                     print("unexpected error")
                                case .captchaCheckFailed:
                                     print("unexpected error")
                                case .webContextAlreadyPresented:
                                     print("unexpected error")
                                case .webContextCancelled:
                                     print("unexpected error")
                                case .appVerificationUserInteractionFailure:
                                     print("unexpected error")
                                case .invalidClientID:
                                     print("unexpected error")
                                case .webNetworkRequestFailed:
                                     print("unexpected error")
                                case .webInternalError:
                                     print("unexpected error")
                                case .nullUser:
                                     print("unexpected error")
                                case .keychainError:
                                     print("unexpected error")
                                case .internalError:
                                     print("unexpected error")
                                case .malformedJWT:
                                     print("unexpected error")
                                }



                            }
                        }else {
                            if let user = authResult?.user {
                                if self.segmentedControl.selectedSegmentIndex == 0 {
                                    let userdata = ["provider" : user.providerID] as [String : Any]
                                    DataService.instance.createFirbaseDBUser(uid: user.uid, userData: userdata, isDriver: false)
                                } else {
                                    let userData = ["provider" : user.providerID, "userIsDriver" : true, "isPickUpModeEnabaled" : false , "driverIsOnTrip": false ] as [String : Any]
                                    DataService.instance.createFirbaseDBUser(uid: user.uid, userData: userData, isDriver: true)
                                }
                            }
                            print("Successfully created a new user ")
                        }

                        self.dismiss(animated: true, completion: nil    )
                    })
                }
            }
        )}
    }

}

当我尝试使用错误的密码登录时,它会登录。我不知道我在哪里错了。

在我的Firebase控制台中,我可以看到用户使用UID进行身份验证,但是当我切换到数据库时,除了手动创建的表之外,没有任何其他东西。

0 个答案:

没有答案