タイトルはすべてを言います。 Firebase Storageディレクトリからイメージをダウンロードできません。ここでは、データを設定するための関数を呼び出すと、それはまた、画像をダウンロードしようとする関数を呼び出すコードのスニペットは次のとおりです。スウィフトで画像をダウンロードするとき、Firebaseのリファレンスが「変数が利用できません」
for element in Dict {
if let itemDict = element.value as? [String:AnyObject]{
let name = itemDict["name"] as! String
let price = itemDict["price"] as! Float
let imageObject = itemDict["image"] as! NSDictionary
let hash = imageObject["hash"] as! String
let storageDir = imageObject["storageDir"] as! String
let image:UIImage = self.downloadImageProductFromFirebase(append: hash)!
let product = Product(name: name, image: image, imageName:hash, price: price, storageDir : storageDir)
self.productList.append(product)
}
}
print(Dict)
self.myTable.reloadData()
そしてここでは、画像をダウンロードしようとするコードは次のとおりです。
func downloadImageProductFromFirebase(append:String) -> UIImage?{
let gsReference = Storage.storage().reference(forURL: "gs://fridgeapp-3e2c6.appspot.com/productImages/productImages/" + append)
var image : UIImage?
gsReference.downloadURL(completion: { (url, error) in
if error != nil {
print(error.debugDescription)
return
}
URLSession.shared.dataTask(with: url!, completionHandler: { (data, response, error) in
if error != nil {
print(error.debugDescription)
return
}
guard let imageData = UIImage(data: data!) else { return }
DispatchQueue.main.async {
image = imageData
}
}).resume()
})
return image
}
しかし、何らかの理由で、この最後の関数を呼び出したときにちょうどクラッシュし、 "致命的なエラー:予期せぬことにオプション値をアンラッピングしている間に見つかりませんでした"と言います。私はデバッガを使用しようとしましたが、FirebaseのStorage変数への参照で「変数が利用できません」というメッセージが表示されました。
あなたの誰かが私にこれを手伝ってもらえますか?私はFirebaseの文書を約100回読みましたが、それでもポイントを得ることはできません。
ありがとうございました!