I am new to IOS. I am building an image sharing app with Xcode and Swift
I am stuck in images uploading part.
How can I limit users to choose 8 images at most and then upload the chosen pictures to Firebase using a For-loop?
I would like to use For-loop since I want to set the first picture as an icon picture.
Below is what I am able to do now
I created a SignUp page and allow a user to use ImagePicker to select 1 image and upload it to Firebase. Below is my code.
import UIKit
import Firebase
class SignUpViewController: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate
{
    @IBOutlet weak var iconfield: UIImageView!
    @IBOutlet weak var usernamefield: UITextField!
    @IBOutlet weak var emailfield: UITextField!
    @IBOutlet weak var passwordfield: UITextField!
    @IBOutlet weak var confirmpasswordfield: UITextField!
    @IBOutlet weak var signupbutton: UIButton!
    let picker = UIImagePickerController()
    var userStorage: StorageReference!
    var ref: DatabaseReference!
    override func viewDidLoad()
    {
        super.viewDidLoad()
        picker.delegate = self
        let storage = Storage.storage().reference(forURL: "gs://whatisit-8484a.appspot.com/")
        ref = Database.database().reference()
        userStorage = storage.child("users")
        // Do any additional setup after loading the view.
        iconfield.layer.cornerRadius=iconfield.frame.size.width/2
        iconfield.clipsToBounds = true
    }
    @IBAction func selectionpressed(_ sender: Any)
    {
        picker.allowsEditing = true
        picker.sourceType = .photoLibrary
        present(picker,animated:true,completion:nil)
    }
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
    {
        if let image = info[UIImagePickerControllerEditedImage] as? UIImage
        {
            self.iconfield.image = image
            signupbutton.isHidden = false
        }
        self.dismiss(animated:true,completion:nil)
    }
    @IBAction func confirmsignup(_ sender: Any)
    {
        guard usernamefield.text != "",emailfield.text != "",passwordfield.text != "", confirmpasswordfield.text != "" else {return}
        if passwordfield.text == confirmpasswordfield.text
        {
            Auth.auth().createUser(withEmail: emailfield.text!, password: passwordfield.text!, completion: { (user, error) in
                if let error = error
                {
                    print(error.localizedDescription)
                }
                if let user = user
                {
                    let changeRequest = Auth.auth().currentUser!.createProfileChangeRequest()
                    changeRequest.displayName = self.usernamefield.text!
                    changeRequest.commitChanges(completion: nil)
                    let imageRef = self.userStorage.child("\(user.uid).jpg")
                    let data = UIImageJPEGRepresentation(self.iconfield.image!, 0.5)
                    let uploadTask = imageRef.putData(data!, metadata: nil, completion: { (metadata, err) in
                        if err != nil{
                            print(err!.localizedDescription)
                        }
                        imageRef.downloadURL(completion: { (url, er) in
                            if er != nil{
                                print(er!.localizedDescription)
                            }
                            if let url = url
                            {
                                let userInfo: [String: Any] = ["uid": user.uid,"E-mail":self.emailfield.text,"username": self.usernamefield.text,"urlToImage": url.absoluteString]
                                self.ref.child("users").child(user.uid).setValue(userInfo)
                                let vc = UIStoryboard(name: "Main",bundle:nil).instantiateViewController(withIdentifier: "homeview")
                                self.present(vc,animated:true,completion:nil)
                            }
                        })
                    })
                    uploadTask.resume()
                }
            })
        }
 
     
    