2017-02-28 51 views
0

我目前正在上传和下载Firebase图片。我将URL作为字符串存储在变量profilePicture中,然后使用URL会话来下载图像。但是,每次照片都会横向加载。但是,当我最初从相机胶卷中选取照片时,会显示正确的方式。任何想法可能发生什么?图片在Swift上从Firebase上通过URL下载时横向加载

上传图片: 当我上传图片,一旦它完全保存,我将URL设置为变量profilePicture。

var storageRef : FIRStorageReference = FIRStorageReference() 
    if let uid = currentUser?.uid { 
     storageRef = FIRStorage.storage().reference().child("\(uid).png") 
    } 

    if let uploadData = UIImagePNGRepresentation(profilePictureImageView.image!) { 

     let uploadTask = storageRef.put(uploadData, metadata: nil) { snapshot, error in 
      if let error = error { 
       print(error) 
      } 
     } 

     // Shows progress bar until saved 
     uploadTask.observe(.progress) { snapshot in 
      self.progressBar.observedProgress = snapshot.progress 
      self.progressBar.isHidden = false; 
     } 

     uploadTask.observe(.success) { snapshot in 
      if let profileImageURL = snapshot.metadata?.downloadURL()?.absoluteString { 
       self.user?.profilePicture = profileImageURL 
       self.progressBar.isHidden = true; 
       self.savedLabel.isHidden = false 

      } 
     } 
    } 

下载图片:

if let profileImageURL = user?.profilePicture { 
     if let url = URL(string: profileImageURL) { 
      URLSession.shared.dataTask(with: url, completionHandler: { (data, response, error) in 

       if error != nil { 
        print(error!) 
        return 
       } 

       DispatchQueue.main.async { 
        self.profilePictureImageView.image = UIImage(data: data!) 
        self.activityIndicator.stopAnimating() 
       } 
      }).resume() 
     } 
    } 

回答