Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Foundation
- import Firebase
- import RxSwift
- class FireAuth {
- static let instance = FireAuth()
- private let auth: Auth
- init() {
- self.auth = Auth.auth()
- }
- public func register(_ params: [String:String]) -> Single<User> {
- return Single.create { callback in
- let email = params["email"] ?? ""
- let password = params["password"] ?? ""
- self.auth.createUser(withEmail: email, password: password) { (res, err) in
- if let user = res?.user { callback(.success(user)) }
- else if let err = err { callback(.error(ErrorPair.castOrCreate(err))) }
- }
- return Disposables.create()
- }
- }
- public func login(_ params: [String:String]) -> Single<User> {
- return Single.create { callback in
- let email = params["email"] ?? ""
- let password = params["password"] ?? ""
- self.auth.signIn(withEmail: email, password: password) { (res, err) in
- if let user = res?.user { callback(.success(user)) }
- else if let err = err { callback(.error(ErrorPair.castOrCreate(err))) }
- }
- return Disposables.create()
- }
- }
- public func logout() -> Completable {
- return Completable.create { callback in
- do { try self.auth.signOut(); callback(.completed) }
- catch let err { callback(.error(ErrorPair.castOrCreate(err))) }
- return Disposables.create()
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement