Firebase和swiftyJSON解析

时间:2016-10-04 11:40:15

标签: json firebase firebase-realtime-database swifty-json

swiftyJSON非常适合解析Firebase。最终想要的是两种可能性:

一个个人ID的imageName,以及所有ID的imageName列表。 JSON Struture:

enter image description here

检索JSON正常但不显示imageName值的代码:

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)")
          }
}

我的最终结果是最终得到一个imageURL以在CollectionView中显示。它似乎很接近,只是没有正确的swiftyJSON格式。感谢。

1 个答案:

答案 0 :(得分:4)

首先我认为你应该解析你的数据'firebase方式'我想你可以调用它而不是使用SwiftJSON。我就是这样做的'firebase way'

    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)")
    }

    }
}

上面的代码对我很有用

在SwiftJSON中,我不是百分之百确定这是否可行,但也许我们可以试试

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)")
}