gpt4 book ai didi

couchdb - 清除 Couchbase Lite 中的文档

转载 作者:行者123 更新时间:2023-12-02 00:22:11 26 4
gpt4 key购买 nike

我有一个使用 Couchbase lite 的移动应用程序。当用户注销时,我想删除设备上的一些文档;用户特定的文档。我不想删除所有文档。文档有 purgeDocument()我认为我可以调用那些特定于用户的文档的方法。

问题是,如果用户重新登录并运行拉复制,则已清除的文档不会重新同步到设备。

根据我对 CouchDB 同步协议(protocol)的了解,这些未重新同步是有道理的,因为这些用户特定文档上没有较新的序列更新来触发重新同步。

我应该如何解决这个问题?

可能性

  1. 删除整个数据库(包括公共(public)文档)并损失性能。
  2. 以某种方式重置复制器的最后一个序列,并希望复制器不会通过网络传输已下载的文档。 (可能会搞砸 CBL)
  3. 拥有独立的数据库,一个存储特定于用户的文档,一个包含通用文档。数据库可以(按 channel )过滤复制器,因此可以将传入数据分区到单独的数据库中。问题是使用 CBLModel 对象包装器时不同数据库的文档之间的无缝引用加载。

最佳答案

据我了解 official documentation清除文档小节中,您不会再次检索该文档,只是因为该文档尚未在服务器端进行修改/更新(简而言之,其版本相同)。

当用户再次登录您的应用程序时,您可以尝试再次创建具有相同类型的虚拟文档,例如用户名(或用于识别用户配置的任何内容),以便您触发拉复制服务器。您可能会遇到冲突,通过从服务器进行修订可以轻松解决该冲突。

我希望这个想法能有所帮助。

评论后更新

这个想法是将要清除的用户文档的 idtype 存储在某处。这样,当用户再次登录时,您可以使用这两个字段创建一个新的虚拟文档。也许这个新的虚拟文档会触发拉式复制。

注意:我没有尝试过这种方法。我只是猜测这可能是解决您问题的方法。

关于couchdb - 清除 Couchbase Lite 中的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34405150/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com