Advertisement
Guest User

Untitled

a guest
Aug 17th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.09 KB | None | 0 0
  1. import UIKit
  2. import Firebase
  3. import FirebaseAuth
  4. import FirebaseStorage
  5. import FirebaseDatabase
  6. import SwiftKeychainWrapper
  7.  
  8. class UserVC: UIViewController, UIImagePickerControllerDelegate,
  9. UINavigationControllerDelegate
  10.  
  11. {
  12.  
  13. @IBOutlet weak var userImagePicker: UIButton!
  14. @IBOutlet weak var CompleteSignInBtn: UIButton!
  15. @IBOutlet weak var usernameField: UITextField!
  16. var userUid: String!
  17. var emailField: String!
  18. var passwordField: String!
  19. var imagePicker : UIImagePickerController!
  20. var imageSelected = false
  21. var username: String!
  22.  
  23.  
  24. override func viewDidLoad(){
  25. super.viewDidLoad()
  26.  
  27. imagePicker = UIImagePickerController()
  28. imagePicker.delegate = self
  29. imagePicker.allowsEditing = true
  30. }
  31.  
  32. func keychain(){
  33. KeychainWrapper.standard.set(userUid, forKey: "uid")
  34. }
  35. func imagePickerController(_ picker: UIImagePickerController,
  36. didFinishPickingMediaWithInfo info: [String : Any]) {
  37. if let image = info[UIImagePickerControllerEditedImage] as? UIImage {
  38. userImagePicker.setImage(image,for:.normal)
  39. imageSelected = true
  40. } else {
  41. print("Image was not selected")
  42. }
  43. imagePicker.dismiss(animated: true, completion: nil)
  44. }
  45.  
  46. func setUpUser(img: String ){
  47. let userData = [
  48.  
  49. "username": username!,
  50. "userImg": img
  51. ]
  52. keychain()
  53. let setLocation = Database.database().reference().child(userUid)
  54. setLocation.setValue(userData)
  55. }
  56.  
  57.  
  58. func uploadImg() {
  59.  
  60. if usernameField.text == nil {
  61. print("Please choose a username")
  62. CompleteSignInBtn.isEnabled = false
  63. } else {
  64. username = usernameField.text
  65. CompleteSignInBtn.isEnabled = true
  66. }
  67.  
  68. guard let img = userImagePicker.image, imageSelected == true else {
  69.  
  70. print("image must be selected")
  71.  
  72. return
  73. }
  74.  
  75.  
  76. if let imgData = UIImageJPEGRepresentation(img, 0.2){
  77. let imgUid = NSUUID().uuidString
  78. let metadata = StorageMetadata()
  79. metadata.contentType = "img/jpeg"
  80.  
  81. Storage().reference().child(imgUid).put(imgData, metadata: metadata) { (metadata, error) in
  82. if error =! nil {
  83. print("Did not upload")
  84. } else{
  85. print("Uploaded")
  86. let downloadURl = metadata?.downloadURL()?.absoluteString
  87. if let url = downloadURl {
  88. self.setUpUser(img: url)
  89. }
  90. }
  91. }
  92.  
  93. }
  94. }
  95.  
  96.  
  97.  
  98. @IBAction func completeAccount(_ sender: Any){
  99. Auth.auth().createUser(withEmail: emailField, password: passwordField, completion: { (user, error) in
  100. if error != nil {
  101. print("Error(error)")
  102. } else {
  103. if let user = user {
  104. self.userUid = user.uid
  105. }
  106. }
  107. self.uploadImg()
  108. })
  109. dismiss(animated: true, completion: nil)
  110.  
  111. }
  112.  
  113.  
  114. @IBAction func seletedImagePicker(_ sender: Any){
  115. present(imagePicker, animated: true, completion: nil)
  116. }
  117.  
  118. @IBAction func cancel(_ sender: AnyObject){
  119. dismiss(animated: true, completion: nil)
  120. }
  121. }
  122.  
  123. guard let img = userImagePicker.image, imageSelected == true else {
  124.  
  125. print("image must be selected")
  126.  
  127. return
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement