Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import UIKit
- import Firebase
- import FirebaseAuth
- import FirebaseStorage
- import FirebaseDatabase
- import SwiftKeychainWrapper
- class UserVC: UIViewController, UIImagePickerControllerDelegate,
- UINavigationControllerDelegate
- {
- @IBOutlet weak var userImagePicker: UIButton!
- @IBOutlet weak var CompleteSignInBtn: UIButton!
- @IBOutlet weak var usernameField: UITextField!
- var userUid: String!
- var emailField: String!
- var passwordField: String!
- var imagePicker : UIImagePickerController!
- var imageSelected = false
- var username: String!
- override func viewDidLoad(){
- super.viewDidLoad()
- imagePicker = UIImagePickerController()
- imagePicker.delegate = self
- imagePicker.allowsEditing = true
- }
- func keychain(){
- KeychainWrapper.standard.set(userUid, forKey: "uid")
- }
- func imagePickerController(_ picker: UIImagePickerController,
- didFinishPickingMediaWithInfo info: [String : Any]) {
- if let image = info[UIImagePickerControllerEditedImage] as? UIImage {
- userImagePicker.setImage(image,for:.normal)
- imageSelected = true
- } else {
- print("Image was not selected")
- }
- imagePicker.dismiss(animated: true, completion: nil)
- }
- func setUpUser(img: String ){
- let userData = [
- "username": username!,
- "userImg": img
- ]
- keychain()
- let setLocation = Database.database().reference().child(userUid)
- setLocation.setValue(userData)
- }
- func uploadImg() {
- if usernameField.text == nil {
- print("Please choose a username")
- CompleteSignInBtn.isEnabled = false
- } else {
- username = usernameField.text
- CompleteSignInBtn.isEnabled = true
- }
- guard let img = userImagePicker.image, imageSelected == true else {
- print("image must be selected")
- return
- }
- if let imgData = UIImageJPEGRepresentation(img, 0.2){
- let imgUid = NSUUID().uuidString
- let metadata = StorageMetadata()
- metadata.contentType = "img/jpeg"
- Storage().reference().child(imgUid).put(imgData, metadata: metadata) { (metadata, error) in
- if error =! nil {
- print("Did not upload")
- } else{
- print("Uploaded")
- let downloadURl = metadata?.downloadURL()?.absoluteString
- if let url = downloadURl {
- self.setUpUser(img: url)
- }
- }
- }
- }
- }
- @IBAction func completeAccount(_ sender: Any){
- Auth.auth().createUser(withEmail: emailField, password: passwordField, completion: { (user, error) in
- if error != nil {
- print("Error(error)")
- } else {
- if let user = user {
- self.userUid = user.uid
- }
- }
- self.uploadImg()
- })
- dismiss(animated: true, completion: nil)
- }
- @IBAction func seletedImagePicker(_ sender: Any){
- present(imagePicker, animated: true, completion: nil)
- }
- @IBAction func cancel(_ sender: AnyObject){
- dismiss(animated: true, completion: nil)
- }
- }
- guard let img = userImagePicker.image, imageSelected == true else {
- print("image must be selected")
- return
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement