Advertisement
Guest User

Untitled

a guest
Apr 14th, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.04 KB | None | 0 0
  1. //Has the user signed in?
  2. if (NSUserDefaults.standardUserDefaults().valueForKey("uid") != nil && UserAccountService.firebaseDBService.CURRENT_USER_REF.authData != nil) {
  3. //User is already signed in
  4. self.performSegueWithIdentifier("dashboardView", sender: self)
  5. } else {
  6. //User must sign in first
  7. self.performSegueWithIdentifier("signInView", sender: self)
  8. }
  9.  
  10. UserAccountService.firebaseDBService.BASE_REF.createUser(email, password: password, withValueCompletionBlock: { error, result in
  11.  
  12. if error != nil {
  13.  
  14. // an error occurred while attempting sign up
  15. if let errorCode = FAuthenticationError(rawValue: error.code) {
  16. switch (errorCode) {
  17. case .EmailTaken:
  18. print("Error: Email already in use: (email)")
  19. self.displayErrorMessage(EMAIL_TAKEN_DB_ERROR_TITLE, message: EMAIL_TAKEN_DB_ERROR_MESSAGE);
  20. return
  21. case .InvalidEmail:
  22. print("Error: Invalid email address: (email)")
  23. self.displayErrorMessage(INVALID_EMAIL_DB_ERROR_TITLE, message: INVALID_EMAIL_DB_ERROR_MESSAGE);
  24. return
  25. case .InvalidPassword:
  26. print("Error: Invalid password: (password)")
  27. self.displayErrorMessage(INVALID_PASSWORD_DB_ERROR_TITLE, message:INVALID_PASSWORD_DB_ERROR_MESSAGE);
  28. return
  29. default:
  30. print("Error creating user: (error.description)")
  31. self.displayErrorMessage(ACCOUNT_CREATION_DB_ERROR_TITLE, message: ACCOUNT_CREATION_DB_ERROR_MESSAGE);
  32. return
  33. }
  34. }
  35.  
  36. } else {
  37.  
  38. // Create and Login the New User with authUser
  39. UserAccountService.firebaseDBService.BASE_REF.authUser(email, password: password, withCompletionBlock: { error, authData in
  40.  
  41. if error != nil {
  42.  
  43. // an error occurred while attempting sign in
  44. print("Error: Error encountered when getting user details after the account was created (error.description)")
  45. self.displayErrorMessage(PROBLEM_GETTING_USER_DETAILS_FROM_DB_ERROR_TITLE, message: PROBLEM_GETTING_USER_DETAILS_FROM_DB_ERROR_MESSAGE)
  46. return
  47.  
  48. } else {
  49.  
  50. // Create a user object and get the user information in a Dictionary<String, String>
  51. let user = User(uid: authData.uid! , email: email!, firstName: firstName!, lastName: lastName!, provider: authData.provider!)
  52. let userDictionary = user.getUserDictionary(user)
  53.  
  54. // Add new account to the Firebase database
  55. UserAccountService.firebaseDBService.createNewAccount(authData.uid, user: userDictionary)
  56.  
  57. }
  58. })
  59.  
  60. // Store the uid for future access
  61. NSUserDefaults.standardUserDefaults().setValue(result["uid"], forKey: "uid")
  62.  
  63. import Foundation
  64. import Firebase
  65.  
  66. class UserAccountService {
  67. static let firebaseDBService = UserAccountService()
  68.  
  69. private var _BASE_REF = Firebase(url: "(BASE_URL)")
  70. private var _USER_REF = Firebase(url: "(BASE_URL)/user")
  71.  
  72. var BASE_REF: Firebase {
  73. return _BASE_REF
  74. }
  75.  
  76. var USER_REF: Firebase {
  77. return _USER_REF
  78. }
  79.  
  80. var CURRENT_USER_REF: Firebase {
  81. let userID = NSUserDefaults.standardUserDefaults().valueForKey("uid") as! String
  82.  
  83. let currentUser = Firebase(url: "(BASE_REF)").childByAppendingPath("user").childByAppendingPath(userID)
  84.  
  85. return currentUser!
  86. }
  87.  
  88. func createNewAccount(uid: String, user: Dictionary<String, String>) {
  89.  
  90. // A User is born.
  91. USER_REF.childByAppendingPath(uid).setValue(user)
  92. print("User info saved to Firebase: user: (user)")
  93. }
  94.  
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement