vendoo_v1.0/Vendoo/FirebaseManager.swift
Okechi Onyeje eee7986ffb Bug has been resolved
Alerts and validation have been added to posting process to prevent bad input, as well as alerts to network selection, to alert user when no networks have been selected or authorized
2016-11-26 15:16:08 -05:00

59 lines
2.0 KiB
Swift

//
// FirebaseService.swift
// Vendoo
//
// This class is responsible for initializing a new user, as well as managing web request to both firebase database and data storage
// Created by Okechi Onyeje on 6/2/16.
// Copyright © 2016 Okechi Onyeje. All rights reserved.
//
import Foundation
import Firebase
import Locksmith
import FirebaseStorage
import TYMActivityIndicatorView
class FirebaseManager: NSObject {
let ref = FIRDatabase.database().reference()
let user_email = ((NSUserDefaults.standardUserDefaults().objectForKey("email") as? String)!).stringByReplacingOccurrencesOfString(".", withString: "_")
let storage = FIRStorage.storage()
var indicator = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.WhiteLarge)
var firGroup = dispatch_group_create()
//let key: String!
override init(){
super.init()
indicator.color = UIColor.blueColor()
//check if user has been created
dispatch_group_enter(self.firGroup)
self.ref.child("Users").observeSingleEventOfType(.Value, withBlock: { snapshot in
// do some stuff once
if(!snapshot.hasChild(self.user_email)){
let user = ["name": (NSUserDefaults.standardUserDefaults().objectForKey("name") as? String)!, "user_Listings": "", "listing_Keys": "", "favorite_listings_keys": ""]
self.ref.child("Users").child(self.user_email).setValue(user, withCompletionBlock: {
(error, reference) -> Void in
dispatch_group_leave(self.firGroup)
})
}else{
dispatch_group_leave(self.firGroup)
}
})
}
}
//string adjustment functions
extension FirebaseManager {
func adjustUserEmail(aString: String) -> String {
return aString.stringByReplacingOccurrencesOfString(".", withString: "_")
}
}