我有一个离线就绪的应用程序,我目前正在建立电子。
核心要求是所有数据都受到限制(必须是用户读取或写入),并且在该数据中,某些数据进一步限于用户,(帐户信息,消息等)
现在我不想要离线复制任何用户不有权访问的数据(这是因为所有数据都可以使用devtools查看,无论是否限制)所以基本上我只想将数据同步到PouchDB的离线商店(如果该用户有权访问它)以及所有用户都可以访问的所有数据。
现在我已阅读以下帖子/指南,但我仍然有点困惑。
从我的理解来看,过滤在性能方面是不错的选择,即使它可以做我想要的。
设置代理会起作用,但它实际上变成了一个REST api,数据同步崩溃了。
我认为我想要的最后一个选项是为每个包含其私人信息的用户建立一个数据库,然后使用其他数据库来保存每个用户可用的信息。
我对这种方法唯一真正的问题是如何处理私有但在两个用户之间共享的数据(消息等......)
我更关注数据应该如何存储而不是代码示例的总体观点,只是真的在应用程序的概念架构上挣扎。
答案 0 :(得分:0)
您的问题有很多解决方案。一个解决方案看起来非常有前景:IBM Cloudant已经开始研究Cloudant Envoy,这是一个模拟CouchDB接口而不是简单REST API的代理。您可以在Envoy over at ibm.com网站上详细了解相关信息。 Github上也提供custom replicator for PouchDB。
这个想法与年龄较大的Couchbase Sync Gateway相同。尽管Couchbase与CouchDB有共同的基础,但我还没有跟踪它们是否仍支持使用CouchDB进行复制。
最简单的方法是在服务器上为每个用户创建一个数据库,以及从中提取共享数据的公共数据库。如果您需要有关此解决方案的更多信息,请与我们联系。