0
レストランとそのデータのリストを取得するために、このコードを以下に示します。しかし、データを格納していないので、配列を返そうとするたびにnilを返します。しかし、私がそれを印刷すると、データを印刷します。助言がありますか?Firebaseからデータを取得できません
func getRestaurants()-> Array<Restaurant>{
var baruri = [Restaurant]()
dataBaseRef.child("AthensRestaurants/Restaurants").observe(.value, with: { (snapshot) in
if let snapshot = snapshot.children.allObjects as? [FIRDataSnapshot] {
for snap in snapshot {
print(snap)
if let restaurantData = snap.value as? Dictionary<String, AnyObject> {
let restaurant = Restaurant(restaurantData: restaurantData)
baruri.append(restaurant)
print(baruri)
}
}
}
})
return baruri
}
私はfirebaseの経験がありません。しかし、私が見るところでは、レストランのリストを取得する呼び出しは非同期呼び出しであり、戻り値は '.observe'内のブロックが実行される前に呼び出されるように見えます。その場合は、完了ハンドラブロックを使用して、取得したデータをポストバックします。 [このリンク](http://stackoverflow.com/questions/34121289/return-bool-in-alamofire-closure/34121496#34121496)は助けになるかもしれません。 –