title: Uploading Image to Firebase Storage and Database
body: <p>I want to put the download URL of images into my Firebase Database. I can upload the Image into storage but I can't figure out how to get the URL into my database with the rest of the "post".</p>
  
  <pre><code>@IBOutlet weak var titleText: UITextField!
  @IBOutlet weak var authorText: UITextField!
  @IBOutlet weak var mainText: UITextView!
  @IBOutlet weak var dateText: UITextField!
  @IBOutlet weak var myImageView: UIImageView!
  
  var ref:FIRDatabaseReference?
  
  override func viewDidLoad() {
      super.viewDidLoad()
  
      ref = FIRDatabase.database().reference()
  
  }
  
  
  override func didReceiveMemoryWarning() {
      super.didReceiveMemoryWarning()
  }
  
  
  @IBAction func uploadImage(_ sender: Any) {
  
  
         let image = UIImagePickerController()
      image.delegate = self
      image.sourceType = UIImagePickerControllerSourceType.photoLibrary
  
      image.allowsEditing = false
  
      self.present(image, animated: true)
      {
          //after its completed
      }
  }
  
  
  @objc(imagePickerController:didFinishPickingMediaWithInfo:) func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
  {
      if let image = info[UIImagePickerControllerOriginalImage] as? UIImage
      {
          myImageView.image = image
  
      }
      else
      {
          //error
      }
  
      self.dismiss(animated: true, completion: nil)
  
      let storageRef = FIRStorage.storage().reference().child("myImage.png")
      if let uploadData = UIImagePNGRepresentation(self.myImageView.image!){
          storageRef.put(uploadData, metadata: nil, completion:
              {
                  (metadata, error) in
                  if error != nil {
                      print("error")
                      return
                  }
  
     print(metadata)
  
     //how do I put the download URL in the metadata into my database
  
          }  
          )
      }
  
  }
  
  @IBAction func addPost(_ sender: Any) {
  
      if self.titleText.text != "" &amp;&amp; self.authorText.text != "" &amp;&amp; self.mainText.text != "" &amp;&amp; self.dateText.text != ""
      {
  
          ref?.child("Posts").childByAutoId().setValue(["Title": titleText.text,"Article": mainText.text, "Author": authorText.text, "Date": dateText.text, "myImageURL": myImageURL])
  
          //the myImageURL part is where I get an error
  
          self.performSegue(withIdentifier: "post", sender: self)
  
      }
      else{
  
          let alertController = UIAlertController(title: "Oops!", message: "Field left blank", preferredStyle: .alert)
  
          let defaultAction = UIAlertAction(title: "Ok", style: .cancel, handler: nil)
          alertController.addAction(defaultAction)
  
          self.present(alertController, animated: true, completion: nil)
  
          }
      }
  }
  </code></pre>