2016-06-20 4 views
0

私はfirebaseデータベースとテーブルビューを使用します。私はそこに物を置く。コード:ファイアベースとテーブルビューデータ複製の迅速化

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

データベースのすべての要素がテーブルビューで表示されます。テーブルビューは、アプリケーションが起動するたびにロードされます。

テーブルビューに情報を取得する配列を持つことによって、テーブルビューを読み込みます。アプリケーションが読み込まれるたびに、配列はデータベースの要素で埋められます。

問題は、新しいオブジェクトをデータベースに追加すると、テーブルビューで要素が重複することです。データはデータベース自体に複製されませんが、その配列のどこかで複製されます。複数のものを試してみましたが、私は最後の2行を削除すると

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

すべてが正常に動作しますが、データは現在のデータベースに保存されていません。私の質問です:これらの2つの行は重複を引き起こすことができますか?事前に感謝

+0

が必要だと思いますか? –

答えて

0

私はこの同じ問題がありました。私はFirebaseデータをGLOBAL構造体の配列にロードしていました。私は自分の問題を修正することができましたArrayを私のtableViewクラスのローカル配列に切り替えます。このことができますなら、私を知ってみましょう:)

0

あなたのコードは非常に明確ではありませんが、私は、あなたがテーブルビューを同期するために使用するコードを表示することができます

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