解析已删除对象的同步

时间:2015-11-22 16:04:20

标签: ios parse-platform

我想首次在我的项目中使用Parse,用于在设备之间同步数据并将它们存储在云中。我无法理解的一件事 - 如何同步已删除的对象。

Here @Javier de la Cueva给出了很好的答案(不使用物理删除但是逻辑。添加一个名为“已删除”和“同步”的新布尔列,后台作业将删除对象with sync = YES。)。如果用户只有2种方式(设备,网络,...)与app一起使用,这种方法将完美地运行。但如果他有3种或更多种方式(设备)怎么办?

例如,他有3个设备,所有设备都已同步。然后他做下一步:在设备A上他创建了一些东西,在设备B上他删除了它,然后在设备A上运行app他同步 - 看到该对象有标记“已删除” - 并在本地删除它,发送标志“sync”到Parse。然后,经过一段时间的后台作业删除了这个对象。

以下是问题:然后用户从设备C运行应用程序,他尝试同步,但没有看到任何更改,并且真正删除的对象仍然存在,他可以更新它,并且发送到Parse。之后 - 设备A和B再次下载它!

我在这里只能看到2个解决方案

首先 :将此后台作业配置为每隔N天开始,并在同步时,如果我们看到我们获得updatedAt的对象日期超过我们当地上一个N日期的updatedAt天 - 我们假设数据不可撤销已废弃,我们必须删除所有本地数据,然后从Parse再次下载(我们可以只在这个阶段更新和添加数据,但是如果我们的某些本地对象必须被删除而我们不知道呢?或者可以设置fetchRequest获取除{{1}之外的所有数据(可能是几百个)?)

我看到的

第二个解决方案objectIDs表并检查是否需要删除对象。    我想知道 - 我的建议是对的吗?存在哪种解决方案更好或更智能的同步删除方法?

0 个答案:

没有答案