swiftyJSON非常适合解析Firebase。最终想要的是两种可能性:
一个个人ID的imageName
,以及所有ID的imageName
列表。 JSON Struture:
检索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格式。感谢。
答案 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)")
}