如何在主线程中运行ObverveEventType?

在Swift中,我使用observerEventType从Firebase中检索快照数据,并将其返回到函数中。 但是看起来数据不是从快照中保存的。

 func checkAmount() -> Int { var amount = -1 dispatch_async(dispatch_get_main_queue(), { () -> Void in self.rootRef.child("users/").child(NSUserDefaults.standardUserDefaults().stringForKey("id")!).observeEventType(FIRDataEventType.Value, withBlock: { (snapshot) in Amount = (snapshot.value!.objectForKey("CoinAmount") as? Int)! }) }) return Amount } 

但是在我做viewDidLoad()函数的时候:

 if checkAmount() == 0 { // You can do this } else { // or you can do that 

我的逻辑是,通过使用dispatch_async我将能够保存observeEvent(我被告知在后台线程中调用),并在我的程序的其余部分使用该数据。