быстрый возврат Firebase в асинхронном задании

У меня проблема с Firebase SDK для iOS в swift 2. Я пытаюсь установить изображение для загрузки из хранилища Firebase. Когда я вызываю функцию, она возвращает ноль. Я думаю, что это потому, что задание загрузки, предоставляемое Firebase SDK, является асинхронным, поэтому, когда подразумеваемое возвращаемое состояние называется uid, который необходим, не устанавливается, потому что Задача не завершена. Как я могу решить эту проблему, чтобы получить правильную фотографию?

override func viewDidLoad() {
   super.viewDidLoad()
   imageView.image = downloadProfilePicFirebase()
}

Функция загрузки Firebase:

func downloadProfilePicFirebase() -> UIImage{

    print("download called")

    //local paths
    let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
    let documentDirectorPath:String = paths[0]
    let imagesDirectoryPath = documentDirectorPath.stringByAppendingString("/profiles")

    var uid = String()


    if let user = FIRAuth.auth()?.currentUser {
        let uid = user.uid

        let storageRef = FIRStorage.storage().referenceForURL("gs://myid.appspot.com")
        let profilePicRef = storageRef.child("/profile_pic.jpg")

        let homeDir: NSURL = NSURL.fileURLWithPath(NSHomeDirectory())
        let fileURL: NSURL = homeDir.URLByAppendingPathComponent("Documents").URLByAppendingPathComponent("profiles").URLByAppendingPathComponent("profile_pic").URLByAppendingPathExtension("jpg")

        // Download to the local filesystem
        let downloadTask = profilePicRef.writeToFile(fileURL) { (URL, error) -> Void in
            if (error != nil) {
                print(error)
            } else {
                // svaed localy now put in ImageView
            }
        }
    }
   return UIImage(contentsOfFile: "\(imagesDirectoryPath)"+"/profile_pic_user_"+uid+".jpg")!
}

Ответы на вопрос(1)

Ваш ответ на вопрос