diff --git a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate index a277f8c..dd83f8d 100644 Binary files a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate and b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index d46b8e3..4ef6d3a 100644 --- a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -186,7 +186,7 @@ moduleName = "Vendoo" usesParentBreakpointCondition = "Yes" urlString = "file:///Users/okechi/Documents/iOs%20Practice/Vendoo/Vendoo_bb/Vendoo/Vendoo/CategoriesTableViewController.swift" - timestampString = "501863904.741449" + timestampString = "501868546.548886" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "570" @@ -201,7 +201,7 @@ moduleName = "Vendoo" usesParentBreakpointCondition = "Yes" urlString = "file:///Users/okechi/Documents/iOs%20Practice/Vendoo/Vendoo_bb/Vendoo/Vendoo/CategoriesTableViewController.swift" - timestampString = "501863904.74155" + timestampString = "501868546.549061" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "572" @@ -744,7 +744,7 @@ moduleName = "Vendoo" usesParentBreakpointCondition = "Yes" urlString = "file:///Users/okechi/Documents/iOs%20Practice/Vendoo/Vendoo_bb/Vendoo/Vendoo/SettingsViewController.swift" - timestampString = "501863904.765008" + timestampString = "501868546.567523" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "194" @@ -759,7 +759,7 @@ moduleName = "Vendoo" usesParentBreakpointCondition = "Yes" urlString = "file:///Users/okechi/Documents/iOs%20Practice/Vendoo/Vendoo_bb/Vendoo/Vendoo/SettingsViewController.swift" - timestampString = "501863904.765171" + timestampString = "501868546.567615" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "197" @@ -881,5 +881,132 @@ landmarkType = "5"> + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Vendoo/FirebaseManager.swift b/Vendoo/FirebaseManager.swift index c217f7d..d92ca35 100644 --- a/Vendoo/FirebaseManager.swift +++ b/Vendoo/FirebaseManager.swift @@ -2,6 +2,7 @@ // 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. // @@ -19,6 +20,7 @@ class FirebaseManager: NSObject { 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! @@ -26,18 +28,20 @@ class FirebaseManager: NSObject { super.init() indicator.color = UIColor.blueColor() //check if user has been created - 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) + 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) + }) + + } + }) } } diff --git a/Vendoo/HomeViewController.swift b/Vendoo/HomeViewController.swift index ac3be80..d1ff6b7 100644 --- a/Vendoo/HomeViewController.swift +++ b/Vendoo/HomeViewController.swift @@ -27,7 +27,7 @@ class HomeViewController: UITabBarController { ServiceNotificationManager.delegate = self self.notificationsManager.setManagers(fbGraphManager, fireManager: firebaseManager, ebayManager: ebayGraphManager, etsyManager: etsyManager) // Do any additional setup after loading the view. - dispatch_async(dispatch_get_main_queue(), { + dispatch_group_notify(self.firebaseManager.firGroup, dispatch_get_main_queue(), { //get all listing information for current user self.firebaseManager.ref.child("Users/\(self.firebaseManager.user_email)").observeSingleEventOfType( .Value, withBlock: { diff --git a/Vendoo/SignUpViewController.swift b/Vendoo/SignUpViewController.swift index 3de1cc9..1d58474 100644 --- a/Vendoo/SignUpViewController.swift +++ b/Vendoo/SignUpViewController.swift @@ -61,13 +61,11 @@ extension SignUpViewController { return } else{ - //save user account NSUserDefaults.standardUserDefaults().setBool(true, forKey: "signedIn") NSUserDefaults.standardUserDefaults().setObject(self.email.text, forKey: "email") NSUserDefaults.standardUserDefaults().setObject(self.name.text, forKey: "name") - //save user credentials in Keychain do{ try Locksmith.saveData(["pass": self.password.text!], forUserAccount: self.email.text!, inService: "vendoo")