Firestoreで差分(更新された)データのみを取得したい
firebaseのfirestoreをDBとしたSNSアプリを作っています。
タイムライン機能の実装にあたり、現在取得しているデータ以後に追加されたデータのみ取得し、タイムテーブルに反映させたいと考えています。
しかしながら、データの差分を判断し、追加されたデータのみを取得するという方法がわからず、全てのデータを取得してしまいます。
ローカルまたはキャッシュに保存しているデータとの差分データのみを取得するにはどのようにすれば良いのでしょうか。
もしお分かりになる方がいらっしゃれば、宜しくお願い致します。
発生している問題
エラーコードは特になし(何回目の実行でも対象データが全て取得される)
swift
1self.defaultStore.collection("OBJECT").order(by: "CREATE_TIME", descending: false).limit(to: 20).addSnapshotListener{ (querySnapshot, err) in 2 guard let snapshot = querySnapshot 3 else{ print("Error fetching snapshots: (error!)");return} 4 snapshot.documentChanges.forEach{ diff in 5 if (diff.type == .added){ 6 print("added: (diff.document.data())") 7 let DOCUMENT_DATA = diff.document.data() 8 guard let CREATE_TIME = DOCUMENT_DATA["CREATE_TIME"] as? Int else { return } 9 self.POST_TIME_LIST.insert(CREATE_TIME, at: 0) 10 } 11 if (diff.type == .modified){ 12 print("modified: (diff.document.data())") 13 } 14 } 15 self.POST_TABLE_VIEW.reloadData() 16}
swift4.0
試したこと
以下を参考にさせて頂き幾つか試したところ上記の結果になりました。 https://qiita.com/miyae/items/6988c1b61b76b4938ae6#単一ドキュメントへ設定 https://qiita.com/SatoTakumi/items/c542b1c0fc0694d4b60d#変更がある場合のみ取得--リアルタイムに取得
補足情報(FW/ツールのバージョンなど)
/xcode10.0/ iOS12.0
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/16 08:52