Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // FirebaseHelper.swift
- // shopper
- //
- // Created by Daniel Cabrera on 3/6/18.
- // Copyright © 2018 Cuevas Cabrera. All rights reserved.
- //
- import Foundation
- import Firebase
- import FirebaseDatabase
- import FirebaseAuth
- struct FirebaseHelper {
- enum FirebaseDBKeys : String {
- case users
- case articles
- }
- enum FirebaseError {
- case UserNotFound
- case Unknown
- }
- static var ref: DatabaseReference! = {
- return Database.database().reference()
- }()
- static func SignInFirebase(aEmail: String, aPass: String, completionHandler: @escaping (Bool, String) -> ()) {
- Auth.auth().signIn(withEmail: aEmail, password: aPass) { (user, error) in
- guard error == nil else {
- completionHandler(false,"Email/username in use try again")
- return
- }
- completionHandler(true, "User sign in")
- }
- }
- static func isAlreadySignIn(completionHandler: @escaping (Bool, String) -> ()) {
- guard Auth.auth().currentUser != nil else {
- completionHandler(false, "User not log in")
- return
- }
- completionHandler(true, "User log in")
- }
- static func SignOut(completionHandler: @escaping (Bool, String) -> ()) {
- do {
- try Auth.auth().signOut()
- completionHandler(true, "Sign Out")
- } catch {
- completionHandler(false, "Error Sign Out")
- }
- }
- static func updatePassword(currentPassword: String, newPassword: String, completionHandler: @escaping (FirebaseError?) -> ()) -> () {
- guard let user = Auth.auth().currentUser else {
- completionHandler(.UserNotFound)
- return
- }
- SignInFirebase(aEmail: user.email!, aPass: currentPassword) { response, _ in
- if response {
- Auth.auth().currentUser?.updatePassword(to: newPassword, completion: { error in
- if error == nil {
- SignOut(completionHandler: { _,_ in })
- completionHandler(nil)
- } else {
- completionHandler(.Unknown)
- }
- })
- } else {
- completionHandler(.UserNotFound)
- }
- }
- }
- static func CreateFirebaseUser(aEmail: String, aPass: String, completionHandler: @escaping (Bool, String) -> ()) {
- Auth.auth().createUser(withEmail: aEmail, password: aPass) { (user, error) in
- guard error == nil else {
- completionHandler(false,"Error handling user")
- return
- }
- debugPrint(user?.email ?? "Not email")
- debugPrint("Success creating user")
- completionHandler(true,"User created")
- }
- }
- static func uploadImage(image: UIImage, completion: @escaping (URL?,String) -> ()) {
- guard let data = UIImagePNGRepresentation(image) else { return completion(nil, "Error formatting image ")}
- let storageRef = Storage.storage().reference()
- let riversRef = storageRef.child("\(UUID().uuidString).png")
- _ = riversRef.putData(data, metadata: nil) { (metadata, error) in
- guard let metadata = metadata else {
- completion(nil,"Error saving image")
- return
- }
- // Metadata contains file metadata such as size, content-type, and download URL.
- completion(metadata.downloadURL(), "Success storing image")
- }
- }
- }
Add Comment
Please, Sign In to add comment