Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // ViewController.swift
- // YogiDoListFB
- //
- // Created by Daniel Williams on 6/16/16.
- // Copyright © 2016 Dandom, LLC. All rights reserved.
- //
- import UIKit
- import FirebaseAuth
- enum SignInError: ErrorType {
- case UserNotFound
- case InvalidPassword
- case OtherError(code: Int)
- }
- class SignInViewController: UIViewController {
- @IBOutlet weak var usernameTextField: UITextField!
- @IBOutlet weak var passwordTextField: UITextField!
- @IBOutlet weak var statusLabel: UILabel!
- @IBOutlet weak var loginButton: UIButton!
- override func viewDidLoad() {
- super.viewDidLoad()
- }
- @IBAction func loginButtonPressed(sender: UIButton) {
- guard let username = usernameTextField.text where !username.isEmpty else { return }
- guard let password = passwordTextField.text where !password.isEmpty else { return }
- signUserIn(username, password: password)
- }
- func signUserIn(username: String, password: String) {
- FIRAuth.auth()?.signInWithEmail(username, password: password, completion: { (user, error) in
- guard error == nil else {
- self.handleError(error!) // how to handle this error case without passing an individual SignInError.XXXX
- return
- }
- user?.getTokenWithCompletion({ (token, error) in
- guard error == nil else { self.handleError(SignInError.OtherError(code: error!.code)); return }
- print(token)
- })
- })
- }
- func handleError(error: ErrorType) {
- switch error {
- case SignInError.InvalidPassword:
- print("invalid password.")
- case SignInError.UserNotFound:
- print("user not found!")
- case SignInError.OtherError(let code):
- print("some other error: \(code)")
- default:
- print("how'd we get here?")
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement