2017-02-27 6 views
1

現在、Firebase Storageに画像をアップロードしようとしています。現在、画像はFirebaseコンソールからダウンロードできるようにアップロードされていますが、閉鎖の中では続けられません。これが基本的なFirebaseの誤解またはiOSであるかどうかはわかりません。もっと情報を提供できるかどうか教えてください。Firebaseに画像を保存できません。

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

    if let uploadData = UIImagePNGRepresentation(profilePictureImageView.image!) { 
     let metadata = FIRStorageMetadata() 
     metadata.contentType = "image/png" 
     print("ABOUT TO STORAGE \(uploadData)") 
     storageRef.put(uploadData, metadata: metadata).observe(.success) { (snapshot) in 
      print("IN STORAGE") 
      let text = snapshot.metadata?.downloadURL()?.absoluteString 
     } 
    } 

私はデバッグするとき、私は取得しています唯一のプリントアウトがSTORAGE 8663314バイト

EDIT TO ABOUT

次のとおりです。過去には 、私はまたによってこの問題を解決しようとしていますする:

if let uploadData = UIImagePNGRepresentation(profilePictureImageView.image!) { 
     print("IN UPLOAD DATA \(uploadData)") 
     storageRef.put(uploadData, metadata: metadata) { [weak self] (metadata,error) in 
      if error != nil { 
       print("ERROR \(error)") 
       return 
      } else { 
       print("NO ERROR") 
      } 

      if let profileImageURL = metadata?.downloadURL()?.absoluteString { 
       self?.profilePicURL = profileImageURL 
      } 
     } 
    } 

もう一度、私は"IN UPLOAD DATA"プリントステートメント。

+0

さて、明らかに何らかのエラーが発生しています。 '.success'だけでなく、他の何かを観察するのはいかがですか?あなたがコンソールで何を得るのか見てみましょう。 – Michal

+0

.failureと.pauseを使って、私はまだ何も見ていません。私は他の何かを試すべきですか? – Sarah

+0

このコードはどこにありますか?このメソッドが呼び出された直後に破棄されるいくつかの短命オブジェクトにありますか?メソッド 'put'がまったく実行されない限り、これらのメソッドの1つ(' .success'/'.failure')に何らかの出力があるはずです。 – Michal

答えて

1

画像が大きすぎます(8.66 MB)。アップロードデータの進捗状況を知るために進行状況を観察することをお勧めします。以下のコードを使用してください。

let uploadTask = storageRef.put(uploadData, metadata: metadata) { snapshot, error in 
    if let error = error { 
    // Uh-oh, an error occurred! 
    } else { 
    // Metadata contains file metadata such as size, content-type, and download URL. 
    let downloadURL = snapshot!.downloadURL() 
    } 
} 

uploadTask.observe(.progress) { snapshot in 
    // A progress event occurred track progress percentage here. 
} 
関連する問題