I'm trying to create a function that uploads images to Firebase Storage and returns the download url for their path so I can use it other parts of the app.
This is what the function looks like:
func uploadImage(to reference:StorageReference, image:UIImage) -> URL? {
        let imageData = UIImageJPEGRepresentation(image, 0.2)
        let metadata = StorageMetadata()
        metadata.contentType = "image/jpeg"
        var downloadURL = metadata.downloadURL()
        reference.putData(imageData!, metadata: metadata) { (metadata, error) in
            if error != nil {
                print("Couldnt upload due to \(String(describing: error))")
            }
            downloadURL = metadata?.downloadURL()
        }
        return downloadURL!
    }
I can't seem to get the result that I want as downloadUrl always returns nil. What am I doing wrong?
 
    