如何从Firebase异步

时间:2016-06-08 20:12:26

标签: swift firebase

我从Firebase.children检索计数数据是异步我能够从函数回调中检索计数但是我无法从回调中获得结果并返回行。我怎么能完成这个?提前谢谢。

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {   
    var number:Int!

    getFirData { (result) in

        number = Int(result.childrenCount)

    }

    return number   
}

这是从Firebase检索的异步数据

func getFirData(completion:(result:FIRDataSnapshot)->()){

    let dbRef = FIRDatabase.database().reference()
    let userAiD = FIRAuth.auth()?.currentUser?.uid

    dbRef.child("posts").queryOrderedByChild("userAiD").queryEqualToValue(userAiD).observeEventType(.Value, withBlock: {snapshot in

        let snapshot = snapshot

        completion(result:snapshot )

    })

}

1 个答案:

答案 0 :(得分:3)

你做不到。您必须在viewDidLoad()viewWillAppear(_:)中触发该查询,将查询的值存储在属性中以供参考,并调用reloadData()(或相关的插入方法)表格视图。