Advertisement
Guest User

Untitled

a guest
Nov 20th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.43 KB | None | 0 0
  1. import Foundation
  2. import Firebase
  3. import RxSwift
  4.  
  5. class FireAuth {
  6.  
  7.   static let instance = FireAuth()
  8.   private let auth: Auth
  9.  
  10.   init() {
  11.     self.auth = Auth.auth()
  12.   }
  13.  
  14.   public func register(_ params: [String:String]) -> Single<User> {
  15.     return Single.create { callback in
  16.      
  17.       let email = params["email"] ?? ""
  18.       let password = params["password"] ?? ""
  19.       self.auth.createUser(withEmail: email, password: password) { (res, err) in
  20.         if let user = res?.user { callback(.success(user)) }
  21.         else if let err = err { callback(.error(ErrorPair.castOrCreate(err))) }
  22.       }
  23.      
  24.       return Disposables.create()
  25.     }
  26.   }
  27.  
  28.   public func login(_ params: [String:String]) -> Single<User> {
  29.     return Single.create { callback in
  30.      
  31.       let email = params["email"] ?? ""
  32.       let password = params["password"] ?? ""
  33.       self.auth.signIn(withEmail: email, password: password) { (res, err) in
  34.         if let user = res?.user { callback(.success(user)) }
  35.         else if let err = err { callback(.error(ErrorPair.castOrCreate(err))) }
  36.       }
  37.      
  38.       return Disposables.create()
  39.     }
  40.   }
  41.  
  42.   public func logout() -> Completable {
  43.     return Completable.create { callback in
  44.      
  45.       do { try self.auth.signOut(); callback(.completed) }
  46.       catch let err { callback(.error(ErrorPair.castOrCreate(err))) }
  47.      
  48.       return Disposables.create()
  49.     }
  50.    
  51.   }
  52.  
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement