2016-09-12 5 views
1

Firebase 저장소에서 이미지를 검색하는 데 도움이 필요합니다. 저장 방법을 배웠지 만 현재 사용자 프로필로 다운로드 할 수 없습니다. 여기에 지금까지 내 코드입니다 : Swift 3 - FireBase 저장소에서 프로필 이미지를 다운로드하는 방법

FIRAuth.auth()?.createUserWithEmail(email!, password: password!, completion: { (authData, error) in 
      if error == nil { 

       if (password == "" || name == "" || email == "") { 
        self.showAlert("error", message: " Please Fill In The Blank") 
       } 
       if (password != confirm_password) { 
        self.showAlert("ERROR", message: "Password Don't Match") 
       } 

      } 
      else { 
       self.showAlert("ERROR", message: "Please Try Again") 
      } 

      let filePath = "\(FIRAuth.auth()!.currentUser!.uid)/\("userPhoto")" 
      var data = NSData() 
      let metaData = FIRStorageMetadata() 
      //let imageName = NSUUID().UUIDString 
      let storageRef = FIRStorage.storage().referenceForURL("gs://storageURL") 
      storageRef.child(filePath).putData(data, metadata: metaData){(metaData,error) in 
       if let error = error { 
        print(error.localizedDescription) 
        return 
       } 
       if let ProfileImageUrl = metaData?.downloadURL()?.absoluteString { 
        let values : [String : AnyObject] = ["name": name!, "email": email!, "profileImageUrl": ProfileImageUrl] 
        self.userPost(values) 
       } 

      } 


     }) 

    } 
    //save data in Database 
    func userPost(values: [String: AnyObject]) { 

     let ref = FIRDatabase.database().referenceFromURL("https://databaseURL.firebaseio.com/") 
     ref.child("users").childByAutoId().setValue(values) 
    } 

그래서 난이 지금까지 가지고 있지만 사용자 프로필에 다운로드하는 방법을 알아낼 질수. 여기에 사용자 ProfileVC 내 코드입니다 :

@IBOutlet weak var ProfileImg: UIImageView! 

override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     self.retriveData() 
     ProfileImg.image = UIImage(named: "ic_account_circle.png") 
     imagePicker.delegate = self 
    } 

func DownloadProfilePhoto() { 
     let storageRef = FIRStorage.storage().referenceForURL("gs://StorageURL.com") 
     let filePath = "\(FIRAuth.auth()!.currentUser!.uid)/\("userPhoto")" 

    } 

제발 도와주세요 .....

+0

이 두 링크를 따르 중포 기지 문서를 확인해야합니다 : - http://stackoverflow.com/a/38940875/6297658, http://stackoverflow.com/ a/39311674/6297658 – Dravidian

답변

1

당신은 이미지 데이터를 다운로드 한 다음 이미지를 만들어야합니다. 당신이 시도해야합니다

let storage = FIRStorage.storage() 
var reference: FIRStorageReference! 
reference = self.storage.referenceForURL("gs://appname.appspot.com/filePath") 
reference.downloadURLWithCompletion { (url, error) in 
    let data = NSData(contentsOfURL: url!) 
    let image = UIImage(data: data!) 
    ProfileImg.image = image 
} 

당신은 https://firebase.google.com/docs/storage/ios/download-files

관련 문제