核心数据与多个用户同步

时间:2015-01-09 17:52:15

标签: ios core-data

我想将核心数据应用与具有不同iCloud ID的用户同步,我正在尝试找出最优雅的方式来执行此操作。我不希望数据与所有用户同步,但希望能够在家庭成员之间进行同步。根据我所做的研究,我认为我不能使用iCloud Core Data同步,因为它只能在具有相同iCloud ID的设备之间进行同步。我查看了this stackoverflow answer并阅读了一些关于Ensembles,Parcelkit和TICoreDataSync,Parse等的内容,但我不清楚这些选项是否允许我与多个用户同步。有没有人有一个很好的方法来同步多个用户的核心数据应用程序?

3 个答案:

答案 0 :(得分:1)

Ensembles和TiCoreDataSync 可能有效。他们可以使用Dropbox文件同步,因此原则上他们应该使用Dropbox共享文件夹。我不认为这些是主要的用途,因此我建议在假设实际工作之前联系开发人员和/或自己做一些好的测试。

但是,您需要考虑用户体验。您的用户至少需要Dropbox帐户,并且在开始以这种方式同步数据之前必须设置共享文件夹。

Parcelkit可能不起作用。它使用Dropbox的数据存储API,与其他Dropbox服务不同,它似乎不支持共享数据。

支持此类共享的服务存在 - 例如,ParseFirebase - 但请务必在使用之前仔细查看其定价。当然,也有许多项目都有自己的自定义服务器后端,但显然需要团队成员才能完成这类工作。

答案 1 :(得分:1)

如果您希望应用程序覆盖更多用户,则需要考虑其他设备类型(至少Android)。

我现在通过以下方式做同样的事情:

  1. 使用适当的Web服务设置在线数据库(注意安全事项的实施 - 不应该通过Web服务以外的任何其他方式公开数据库。)
  2. 为您与服务器的通信创建一个类(使用具有安全处理的类方法,如身份验证和授权)。
  3. 使用应用中的类与服务器通信(SQL操作在服务器上完成)。
  4. 要与CoreData集成,您需要在应用程序中创建类似于后端数据库中的结构的模型。然后,您需要为仅处理本地CoreData的应用程序创建一个类似的类。

    如果要确保在服务器和本地数据存储上完成操作,可能需要更高级别的类。

    此外,您必须实施许多条件,以确保在确保数据在线存储后立即写入本地数据(或创建引擎以便稍后运行不同的操作)。

    另一种方式如果您熟悉通知: 在设备之间使用结构化通知进行数据操作,以使所有内容与其他用户保持同步。这个问题是操作的“自治”。如果两个操作几乎在同一时间完成,您必须找到一种方法来确保操作的顺序正确完成(可能是时间戳或其他)。

答案 2 :(得分:0)

我正在为我的应用程序寻找相同的东西,并且我认为'在使用云问题包中的公共文件夹后,你可以做一个相当不安全的版本,如本问题所述(当时没有接受的答案)发布):Private data sharing using CloudKit

您需要找到一种方法来区分真正公开的数据和您需要的用户之间共享的数据以及某种级别的身份验证。

我将尝试将具有访问权限的权限文件导出到我想要共享的任何人,并结合该权限文件中的唯一标识符。

请记住,正如链接答案的评论中所提到的,我的实现将是默默无闻的安全性(感谢该短语),除非您找到一种方法为其添加适当的验证,但我的数据相对不敏感。

希望这一点,或评论中的任何嘲笑,都指向正确的方向:)