0
Firebaseでエントリを正常に更新できます。コンソール上に表示されますが、テーブルビューでは表示されません。私のアプリを再起動すると、変更内容が表示されますが、すぐに表示することができます。Firebaseで値を更新した後にテーブルビューを更新する
私のアプローチは、 "ChildChanged"通知の下で、できるだけ早くテーブルビューを読み込む配列を編集することです。
ref.observeEventType(.ChildChanged, withBlock: { (snapshot) in
print("One of the entries were changed so we're reloading the table view")
if let firstname = snapshot.value?.objectForKey("firstname"), lastname = snapshot.value?.objectForKey("lastname")
{
let fullname = "\(firstname) \(lastname)"
names[I_Need_This_Index] = fullname
dispatch_async(dispatch_get_main_queue())
{
self.tableView.reloadData()
}
}
}, withCancelBlock: nil)
あなたが見ることができるように、私はすでに私はとテーブルビューを更新する、編集された値である「フルネーム」の値を持っているために、私はちょうど、私が必要なもののインデックスを検索する必要があります。
どうすればいいですか?
私はおそらく何かのように思えます。ただし、私のスナップショットの値は新しく更新された値ですが、古い値を取得しようとしています –
古い値は変更スナップショットには含まれていません。ドキュメント(https://firebase.google.com/docs/reference/ios/firebasedatabase/interface_f_i_r_data_snapshot)をご覧ください。 必要に応じて、古い値を自分で取得する必要があります。別の考え方は、最初のスナップショットをテーブルビューモデルとして使用して、すべての情報(キー、古い値など)を適所に置くことです。 –
ええと...私はそれについてやってみたい? –