我搜索了许多主题和问题,但没有找到答案。
当我使用 Realm Objects Server
并且客户端连接到服务器时,整个数据库是否在所有客户端之间同步?
换句话说,如果我有一个包含数百万个对象、关系等的公共(public)数据库,所有客户端都在其设备上拥有整个数据库的副本?
我需要 Realm
同步功能,但我不知道如何进行同步。同步是增量的吗?每个用户都有设备查询所需的对象?
我的应用程序每小时都会增加大小,Realm
的同步功能对我来说是完美的,但我对数据库的大小以及客户端如何同步很多有疑问数据。
提前致谢!
最佳答案
目前,是的。公共(public) Realm 与每个客户的设备完全同步。当客户端的设备首次连接时,将首先下载整个列表,从那时起,任何其他更改都将在服务器上进行同步。
也就是说,所有 Realm 文件都被压缩(即,所有分配的空空间都被删除,所有字符串都被压缩),然后在下载到客户端之前用 gzip 压缩,所以只要公共(public) Realm 不包含大的二进制 blob,即使是非常大的文件也应该很快下来。
将部分复制添加到 Realm Mobile Platform 的路线图上。这将只允许将单个 Realm 文件的一部分同步到特定客户端。但是,目前还没有具体的发布时间计划。
目前,最简单的做法是在服务器上维护数据的主列表,并只将需要的数据复制到每个用户的私有(private) Realm 。但是,由于这需要在服务器上执行自定义逻辑,因此需要 Professional或 Realm 移动平台的企业版。
关于ios - 跨客户端的 Realm 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41924569/