我可以在查询 FDatasnapshot 后对其进行操作吗?

Can I manipulate FDatasnapshot once I have queried for it?

我希望能够对返回的 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)
    }

}

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

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

您可以参考此处Datasnapshot Methods了解更多信息。

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

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