2016-08-10 10 views
1

Firebaseストレージから画像を取得しようとしています。私はJSONと全く同じ名前の画像を取得する必要があります。キー値は"Product":"some name"です。Firebaseストレージから画像を取得する

例えば画像名はurl内部でこのようにする必要があります

let productImageref = productsValue[indexPath.row]["Product"] as? String 

私は右のurlを取得できますか?私はそれを理解していない。私はすべてのドキュメントを読んでいます。理解しているように、私はFirebaseから "Download URL"を使用しなければなりません。画像を取得するために、私は非同期的にそれを行うには、 "KingFish"サードパーティのライブラリを使用しています。

私はこのようにしようとしたが、それは私のイメージを与えていません。この上記のコードのように

let productImageref = productsValue[indexPath.row]["nicotine"] as? String 

cell!.imageView!.kf_setImageWithURL(NSURL(string: "https://firebasestorage.googleapis.com/v0/b/snuspedia.appspot.com/o/Catch%20Dry%20Eucalyptus%20White%20Mini.png?alt=media&token=68cf4b76-e35b-4868-80f3-d29872e00122")!, placeholderImage: nil) 

私は画像をロードするために取得することができますが、私はすべてのcellに異なる画像をロードしなきゃ。

私は間違っていますか?あらゆるヒントは大歓迎です。

答えて

1

私はそれはかなり右でしたが、少し間違っている:私の経験から は、それがこのようなアップロードされた画像のURLを維持する方が良いですDこれは魅力のように働いていたコードである

let productImageref = productsValue[indexPath.row]["Products"] as? String 



FIRStorage.storage().reference().child("\(productImageref!).png").downloadURLWithCompletion({(url, error)in 
     if error != nil{ 
      print(error) 
     }else{ 
      (cell?.imageView)!.kf_setImageWithURL(url, placeholderImage: nil) 
     } 
    }) 
0

GSストレージURLは、いつでもアクセスできる実際のURLではありません。認証後にしかアクセスできませんでした。 したがって、GET HTTP呼び出しでGS URLを持つイメージを取得することはできません。

let reference = storage.referenceForURL(Constant.Firebase.FIREBASE_STORAGE).child(imageNameWithDate()) 

    if (picture != nil) 
    { 
     let picData = UIImageJPEGRepresentation(picture!, 0.6) 
     reference.putData(picData!, metadata: nil) { (metadata, error) in 
      if error == nil { 
       let link = metadata?.downloadURL()!.absoluteString 
       //save this link for the image URL. 
      } 
    } 
+0

あなたは1970年以来間隔に基づいて、文字列としてイメージ名を返します。私が作ったものだけのシンプルな方法であること –

+0

..定数imageNameWithDateのようないくつかの変数を説明することができます。 –

関連する問題