Couchbase lite を使用したモバイル アプリがあります。ユーザーがログアウトするときに、デバイス上のドキュメントの一部を削除したいと考えています。ユーザー固有のドキュメント。すべてのドキュメントを削除したくありません。ドキュメントには、purgeDocument()
それらのユーザー固有のドキュメントで呼び出すことができると思われるメソッドがあります。
問題は、ユーザーが再度ログインしてプル レプリケーションを実行すると、パージされたドキュメントがデバイスに再同期されないことです。
CouchDB 同期プロトコルについて私が知っているほとんどの情報に基づいて、再同期をトリガーするユーザー固有のドキュメントに新しいシーケンス更新がないため、それらが再同期されないことは理にかなっています。
この問題にどのようにアプローチすればよいですか?
可能性
- データベース全体 (共通ドキュメントを含む) を削除すると、パフォーマンスが低下します。
- どういうわけか、レプリケーターの最後のシーケンスをリセットし、レプリケーターが既にダウンロードしたドキュメントをネットワーク経由で転送しないことを願っています。(おそらくCBLを台無しにするでしょう)
- ユーザー固有のドキュメントを格納するデータベースと、共通のドキュメントを格納するデータベースを別々に用意します。データベースは (チャネルごとに) フィルタリングされたレプリケーターを持つことができるため、受信データを個別のデータベースに分割することができます。問題は、CBLModel オブジェクト ラッパーを使用する場合に、異なるデータベースのドキュメント間でシームレスに参照をロードすることです。