2016-10-04 6 views
2

swiftyJSONはFirebaseの解析に適しています。最終的には2つの可能性があります。FirebaseとswiftyJSONの解析

1つの個人IDの場合はimageName、すべてのIDの場合はimageNameのリストです。 JSONカルコゲノフルバレン骨格:

ref.observe(FIRDataEventType.value) { 
      (snapshot: FIRDataSnapshot!) in 

      let json = JSON(snapshot.value) 
      // print("JSON: \(json)") 

      // PRINT IMAGENAME - NOT WORKING 
      if let imageName = json[12345][0]["imageName"].string { 
       print("imageName: \(imageName)") 
      } 

      // // PRINT IMAGENAME - NOT WORKING 
      let theKeys = json.dictionary!.keys 

      for key in theKeys { 
      let imageName = json[0][0]["imageName"] 
      print("imageName: \(imageName)") 
      } 
} 

私の最終的な結果はCollectionViewに表示するimageURLにで終わることです:罰金JSONを取得しますが、imageName値は表示されません

enter image description here

コード。ちょうどswiftyJSON形式が正しくなっていないと思われます。ありがとう。

答えて

3

まずはあなたのデータを 'firebase way'で解析する必要があると思います。私はあなたがSwiftJSONを使う代わりにそれを呼び出すことができると思います。これは、上記のコードは、私SwiftJSONで

に適していますどのように私はそれを「firebase道」を行うだろう

import FirebaseDatabase 

    class ViewController: UIViewController { 

     var ref: FIRDatabaseReference! 

    override fun viewDidLoad() { 
     super.viewDidLoad() 

     ref = FIRDatabase.database().reference() 


    } 

    func retrieveData() { 

     ref.child("12345").observe(.childAdded, with { (snapshot) in 

     let dict = snapshot.value as? [String: AnyObject] 

     let imageNamed = dict!["imageName"] as? String 

     print("\(imageNamed)") 
    } 

    } 
} 

、私はこれが機能するかどうか100%わからないんだけどされているが、多分私達は試みることができる

let json = JSON(snapshot.value) as? [String: AnyObject] 

if let imageName = json!["12345"][0]["imageName"].string { 

} 

let theKeys = json.dictionary!.keys 

for key in theKeys { 
    let imageName = json[0][0]["imageName"] 
    print("imageName: \(imageName)") 
} 
関連する問題