独特的领域容器对象
Unique Realm container objects
我按照 Realm 的任务演示应用实现了实时同步。
这里使用了一个虚拟容器,用于容纳 List
模型。
演示应用似乎不支持离线使用。
我想知道,在这种设置下,我在在线和离线设备上启动应用程序,然后使用离线设备在线时会发生什么。
我最初的期望是我会以 2 个容器结束(这将是一个无效状态),但当我测试时令人惊讶的是最后只有 1 个容器。
但有时我会得到 2 个容器,但无法确定是什么原因造成的。
接下来的问题是,这究竟是如何工作的?我假设当我第一次同步离线设备时容器通常不会重复的原因是它被作为同一个对象处理,可能是因为它没有主键或其他什么?但为什么有时会重复呢?这里的最佳做法是什么?我是否可能必须使用主键或在连接后检查是否存在重复,如果是,请手动合并容器?
目前,Realm Tasks 仅在尝试添加新的基本列表容器对象之前检查默认 Realm 是否为空。如果在进行此检查时同步过程尚未完成,则创建第二个容器是合理的。在本地网络上测试应用程序时,这通常不是问题,因为下载速度非常快,但我们绝对应该更彻底地测试一下。
添加主键肯定会有帮助,因为这意味着如果在本地创建第二个列表,它将与服务器上的版本合并。
我们最近一直在关注 'on-boarding' 当第二个设备通过新的进度通知系统连接到用户的 Realm Mobile Platform 帐户时的过程。一种更合乎逻辑的方法是在登录后等待同步完成初始下载,然后检查对象是否存在。文档完成后,我们很可能会改进 Realm Tasks 处理此问题的方式。
演示应用程序(以及 Realm 移动平台)确实支持离线,但仅在用户首次登录后(即最初生成这些容器对象时)。在那之后,应用程序可以脱机使用,在此期间所做的任何更改都会在下次联机时同步。
我们计划构建 'anonymous user' 功能,用户可以立即开始使用该应用程序(甚至离线),然后他们在登录之前所做的任何更改(由于他们处于离线状态)他们这样做后转移到用户帐户。
我按照 Realm 的任务演示应用实现了实时同步。
这里使用了一个虚拟容器,用于容纳 List
模型。
演示应用似乎不支持离线使用。
我想知道,在这种设置下,我在在线和离线设备上启动应用程序,然后使用离线设备在线时会发生什么。
我最初的期望是我会以 2 个容器结束(这将是一个无效状态),但当我测试时令人惊讶的是最后只有 1 个容器。
但有时我会得到 2 个容器,但无法确定是什么原因造成的。
接下来的问题是,这究竟是如何工作的?我假设当我第一次同步离线设备时容器通常不会重复的原因是它被作为同一个对象处理,可能是因为它没有主键或其他什么?但为什么有时会重复呢?这里的最佳做法是什么?我是否可能必须使用主键或在连接后检查是否存在重复,如果是,请手动合并容器?
目前,Realm Tasks 仅在尝试添加新的基本列表容器对象之前检查默认 Realm 是否为空。如果在进行此检查时同步过程尚未完成,则创建第二个容器是合理的。在本地网络上测试应用程序时,这通常不是问题,因为下载速度非常快,但我们绝对应该更彻底地测试一下。
添加主键肯定会有帮助,因为这意味着如果在本地创建第二个列表,它将与服务器上的版本合并。
我们最近一直在关注 'on-boarding' 当第二个设备通过新的进度通知系统连接到用户的 Realm Mobile Platform 帐户时的过程。一种更合乎逻辑的方法是在登录后等待同步完成初始下载,然后检查对象是否存在。文档完成后,我们很可能会改进 Realm Tasks 处理此问题的方式。
演示应用程序(以及 Realm 移动平台)确实支持离线,但仅在用户首次登录后(即最初生成这些容器对象时)。在那之后,应用程序可以脱机使用,在此期间所做的任何更改都会在下次联机时同步。
我们计划构建 'anonymous user' 功能,用户可以立即开始使用该应用程序(甚至离线),然后他们在登录之前所做的任何更改(由于他们处于离线状态)他们这样做后转移到用户帐户。