记录使用 NSPersistentCloudKitContainer 时的唯一性?



我已经成功地将我的应用程序迁移到使用NSPersistentCloudKitContainer,以便使用CloudKit同步其数据。

但是,我想知道如何处理某些实体的独特性。例如,假设一个User实体具有需要唯一的属性emailAddress。现在考虑两个设备使用相同的电子邮件地址创建User实例的情况。在我当前的实现中,没有什么可以强制唯一性,因此我最终会在两个设备上同步更改后立即提供 2 个实例。

目前,每当我获取假设它们是唯一的实体时,我都会检查它们是否真的是,如果不是,则合并它们,包括将其中一个实例的关系分配给另一个实例。合并后,我删除了"空"实例。虽然这似乎工作正常,但我也可以假设这可能会出错的情况:当两个设备同时合并并最终删除不同的实例时,导致所有实例都被删除。

我应该如何处理这样的案件?

附言。我一直在寻找类似的问题,发现了一些类似的问题,但它们都与明确使用CKRecord有关。由于我使用的是封装和简化 CloudKit 实现的NSPersistentCloudKitContainer,因此我不使用这些"低级"类。

NSPersistentCloudKitContainer仅使用用户的专用数据库区域。您必须拥有一个公共数据库区域,并使用给定的电子邮件获取用户记录。但是,如果您计划在欧盟注册应用,这可能至关重要。他们严格的GDPR规则不允许公开电子邮件。

您最终会拥有自己的数据库和后端逻辑,以满足您的要求。

相关内容

  • 没有找到相关文章

最新更新