Ich bin neu in IOS und Firebase.Vorbereitung für den Übergang beim Abrufen von Daten aus Firestore
Ich habe eine Tableview, die vorliegenden Unterlagen von meinem Fires, jedes Dokument eine Unter Sammlung hat, und ich möchte um es holen, wenn ich die Reihe traf, und präsentieren die neuen Daten in einem zweiten Tableview
Jetzt I‘ mit m:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
switch segue.identifier {
case "showOptions"?:
let selectedDishTableViewController = segue.destination as! SelectedDishViewController
if let indexPath = tableViewDishes.indexPathForSelectedRow {
brain.loadOptions(dish: brain.listOfDishes[indexPath.row])
selectedDishTableViewController.dish = brain.listOfDishes[indexPath.row]
selectedDishTableViewController.myOption = brain.myOption
brain.myOption.removeAll()
}
default: break
}
}
dies mein Gehirn func ist:
func loadOptions(dish:Dish) {
db.collection("Restaurants").document("Limon").collection("Menu").document((self.sectionName!)).collection("Dishes").document(dish.DishName).collection("Options").getDocuments { [weak self](querySnapshot, error) in
if error != nil {print(error)}
else {
for document in querySnapshot!.documents {
// appending the data to my Array that will be presented in the next tableView
}
}
}
}
, was jetzt passiert, ist, dass das erste Mal traf ich die Zeile zuerst aufgerufen idload der zweiten Tabellenansicht wird erscheinen, weil db.collection asynced ist, das Ergebnis, dass ich zurückdrücken muss und dann die selbe Zeile ankreuze, um die Daten vom ersten Treffer zu sehen.
Sie auf Hauptthread zweite Controller Tabellenansicht neu geladen haben . –
sollte ich eine Funktion neu laden Daten hinzufügen und nur die Tabelle neu laden oder sollte ich es in ViewDidload tun? Ich bin mir nicht sicher, wie ich das ausführen soll. –