我查询后可以操作FDatasnapshot吗?

时间:2015-01-25 02:33:29

标签: ios swift firebase

我希望能够对我回来的Datasnapshot进行一些自定义过滤。我不认为我可以创建一个复杂的查询来完成我想要的结果。

是否可以这样做,如果是,解析快照的最佳方法是什么?

编辑:

我正在使用SwiftyJSON,这就是我最终解析它的方式:

standbyRef.observeSingleEventOfType(.Value, withBlock: { snapshot in
        // do some stuff once

        println(snapshot.value)
        self.parseJson(snapshot.value as NSDictionary)

})

func parseJson(var snapshot:NSDictionary!){

    let json = JSON(snapshot)

    for (key: String, subJson: JSON) in json {
        // key to standby users
        println(key)

        // one object at a time
        println(subJson)
    }

}

2 个答案:

答案 0 :(得分:1)

Firebase仅接受JSON格式的所有数据。当您获得Firebase任何特定节点的Datasnapshot时,您将获得该节点下的完整数据,该节点仅为JSON。

获得Datasnapshot JSON后,您可以使用任何JSON库对其进行解析,具体取决于您使用的平台。

您可以在此处参考Datasnapshot Methods了解详情。

答案 1 :(得分:0)

没有任何额外的库,您也可以这样做:

if let email = snapshot.value["email"] as? String {
    user.email = email
}

或者,如果您想迭代所有值:

let enumerator = snapshot.children
while let child = enumerator.nextObject() as? FDataSnapshot {
    println(child.key)
    println(child.value)
}