3

画像を Firebase Storage にアップロードできますが、ダウンロードに問題があります。これは、画像をダウンロードするための私のコードです:

let storage = FIRStorage.storage()
let localURL : NSURL! = NSURL(string: "file:///Documents/co.png")
// i also tried let localURL : NSURL! = NSURL.fileURLWithPath("file:///Documents/co.png")

func download() {
    let storageRef = storage.referenceForURL("gs://project-5547819591027666607.appspot.com")
    let imageRef = storageRef.child("co.png")

    let downloadTask = imageRef.writeToFile(localURL) { (URL, error) -> Void in
        if (error != nil) {
            print(error?.localizedDescription)
        }
        else {
            self.imageView.image = UIImage(data: data!)
        }
    }
}

受信中 - オプション (「不明なエラーが発生しました。サーバーの応答を確認してください。」)

また、それらをダウンロードしたら、その画像をどのように表示しますか?

画像がダウンロードされたかどうかを確認するために、UIImageView を作成し、「imageView」というストーリーボードにアウトレットを設定してから、ダウンロードした画像を UIImageView に設定しました。

self.imageView.image = UIImage(data: data!)
4

1 に答える 1

6

試す

最初にダウンロードしたい画像への参照を取得します

let reference = FIRStorage.storage().reference("uploads/sample.jpg")

画像のサイズが小さいことがわかっている場合は、最大 1 ~ 2 mb のようにします。イメージをメモリにダウンロードする

reference.dataWithMaxSize(1 * 1024 * 1024) { (data, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
     let myImage: UIImage! = UIImage(data: data!)    
  }
}

これは、Firebase Storage から直接ダウンロードする最も迅速で簡単な方法です。

ただし、プログレス ブロックやキャッシュなどの特定の機能が必要な場合があります。このような場合、Alamofire などのサードパーティを使用して、Firebase Storage から取得した URL から画像をダウンロードできます。
URLを取得するには、次のようにします

reference.downloadURLWithCompletion { (URL, error) -> Void in
  if (error != nil) {
    // Handle any errors
  } else {
     print(URL)
     // download image using NSURLSession or Alamofire
  }
}
于 2016-06-08T06:23:44.920 に答える