我很难找到解决方案,我认为这是一个常见的要求,所以我希望有人可以帮我提一下如何搜索/探索的区域。
背景
我正在构建iOS移动应用。我正在使用realm.io在本地存储数据。该应用程序预装了Wordpress mySQL数据库内容的快照(它使用自定义类型)。 WP数据库的内容只能通过Wordpress安装编写,移动应用程序无法写入数据。
目标
所以,我希望能够检查自给定日期以来的更改(无论何时上次更新本地数据库)并将更改的记录发送到移动应用程序(通过wp JSON api?)。
我想我可以获取“自约会以来的帖子”但我需要一个完整的列表,列出自给定日期以来的所有创建,更新和删除操作。
由于该应用程序是只读的,我认为这种类型的单向同步非常简单,但我找不到一个通用的解决方案。
任何指出我正确方向的想法都会很棒。显然,如果任何人有任何经验,如果与realm.io的事情,那将是惊人的: - )
答案 0 :(得分:1)
Realm不支持跨不同文件的任何类型的同步机制。我们虽然有一个issue,但您很可能会在直接未来寻找解决方案。
更新:Realm推出了Realm Mobile Platform。这提供了同步功能,并将大大简化此用例的解决方案。
您可以使用例如服务器端Node.js绑定从MySQL Wordpress安装中提取新数据并将它们推送到由Realm Object Server提供服务的全局Realm。这可以从移动应用程序进行只读同步,这将自动接收增量并向用户提供更新的数据。
在此期间,无论您采用何种机制,都需要您具有从iOS应用程序到领域数据库的读写权限,以便您可以使用新数据进行更新。
按照您的描述推送更改的记录可能无法正常工作。
Apple的推送通知服务(APNS)是唯一可在您的应用处于后台或暂停时工作的后方通信渠道,可让您发送非常小的有效负载。您可以使用它来表示您的iOS应用程序,在服务器端更改了某些内容并且有新数据要加载。然后,您将发出对基于JSON的API的请求,等待响应,将返回的JSON映射到Realm对象并将它们存储在数据库中。
您可能希望在iOS官方应用程序编程指南的后台执行章节的"Downloading Content in the Background"部分中阅读更多内容。
虽然从应用程序包预先播种数据库似乎是一个好主意,因为用户在下载应用程序后不需要等待,这将使应用程序本身扩大数据,这可能在未来完全成为不相关的。