在从firebase登录

时间:2017-01-13 18:03:02

标签: swift firebase swift3 firebase-realtime-database

我有下面的代码,我正在尝试将纬度坐标和经度坐标存储到2个数组中。我的问题是在我甚至有机会从firebase检索数据之前加载控制器。目前我正在使用回调但无法将数据存储在数组中。

class MapViewController: UIViewController, MKMapViewDelegate,        CLLocationManagerDelegate {
var restaurantArray = [Restaurant]()
var latArray = [Double]()
func getWorkersList(callback: @escaping ((_ data:[Restaurant]) ->Void )) {
    FIRDatabase.database().reference().child("AthensRestaurants/Restaurants").observe(.value, with: { (snapshot) in
        var results = [Restaurant]()

        for res in snapshot.children{
            let res = Restaurant(snapshot: res as! FIRDataSnapshot)
            results.append(res)
        }

        self.restaurantArray = results.sorted(by: { (u1, u2) -> Bool in
            u1.name < u2.name
        })
        callback(results)

    }) { (error) in
        print(error.localizedDescription)
    }
}
var dataBaseRef: FIRDatabaseReference! {
    return FIRDatabase.database().reference()
}


override func viewDidLoad() {
    super.viewDidLoad()

    helpMe()
}
override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(true)
    getWorkersList(callback: { (data:[Restaurant]) -> Void in
        print(data)
        for item in data {
            self.latArray.append(item.latitude)
        }
        print(self.latArray.count)
        print("hello")
    })
}
func helpMe(){
print("hello")
    print(latArray.count)
}

}

0 个答案:

没有答案