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")