2016-06-20 33 views
0

Ich verwende Firebase-Datenbank und Tabellenansicht. Ich habe dort ein Objekt hingelegt. Der Code:Firebase und Tabellenansicht duplizieren Daten Swift

thingManager.addNewThing(thingName.text!) 
let thingRef = self.thingsRef.childByAppendingPath(thingName.text!) 
thingRef.setValue(thingManager.toAnyObject(thingName.text!) 

Alle Elemente aus der Datenbank werden in der Tabellenansicht angezeigt. Die Tabellenansicht wird bei jedem Start der Anwendung geladen.

Ich lade die Tabellenansicht, indem ich ein Array habe, von dem die Tabellenansicht Informationen abruft. Jedes Mal, wenn die App geladen wird, wird das Array mit Elementen aus der Datenbank gefüllt.

Das Problem besteht darin, dass die Elemente in der Tabellenansicht dupliziert werden, wenn ich ein neues Objekt zur Datenbank hinzufüge. Die Daten werden nicht in der Datenbank selbst dupliziert, aber sie werden irgendwo in diesem Array dupliziert. mehrere Dinge ausprobiert und als ich die letzten beiden Zeilen löschen

let thingRef = self.thingsRef.childByAppendingPath(thingName.text!) 
thingRef.setValue(thingManager.toAnyObject(thingName.text!) 

alles funktioniert gut, aber die Daten werden jetzt nicht in der Datenbank gespeichert. Meine Frage ist: Können diese beiden Zeilen die Duplizierung verursachen? Vielen Dank im Voraus

+0

Können Sie den Code zeigen, dass Sie die Tabellenansicht synchronisieren verwenden? –

Antwort

0

Ich hatte das gleiche Problem. Ich habe die Firebase-Daten in ein GLOBAL Array von Strukturen geladen. Ich war in der Lage, mein Problem zu beheben, indem ich das Array zu einem LOCAL-Array in meiner TableView-Klasse wechselte. Lassen Sie mich wissen, ob das hilft :)

0

Ihr Code ist nicht ganz klar, aber ich glaube, Sie brauchen

dispatch_async(dispatch_get_main_queue(), { 
    self.YourTableView.reloadData() 
}) 
Verwandte Themen