我有一个与Parse.com同步的iOS应用程序。
它可以找到添加到Parse的任何内容,并使用PFQuery将其添加到Core Data。它还可以检查已更新的相应数据并进行相应更新。
但是,我不确定如何找到Parse.com上已删除的对象。
是否有人知道将列出已删除的ObjectID及其删除日期的查询?然后我可以从应用程序的核心数据中删除它们。
答案 0 :(得分:4)
我也需要这个功能,但是认为将行标记为已删除会使数据膨胀并为每个查询添加一个条件。所以我创建了一个Deletion类。它只记录任何已删除行的类名和ID,因此它保持很小:
function recordDeletion(klass, identifier) {
var Deletion = Parse.Object.extend("Deletion");
var deletion = new Deletion();
deletion.set("klass", klass);
deletion.set("identifier", identifier);
return deletion.save();
}
// for every class that you want deletions recorded, add one of these...
Parse.Cloud.beforeDelete("MyClass", function(request, response) {
recordDeletion("MyClass", request.object.id).then(function() {response.success();});
});
我的iOS客户端记录上次提取数据的日期,然后从MyClass
(+其他)和Deletion
获取新创建/更新的所有内容。有了它,可以在本地删除删除。
在较长时间内,客户端会删除所有本地缓存的数据并获取所有内容的新副本(删除除外)。这允许我在服务器上安排一个预定的作业,该作业将清空删除表(在一个比客户端周期长得多的周期)。
答案 1 :(得分:0)
此处没有提供API。
根据@Fogmeister的评论,您可以将对象标记为已删除并更新。或者,您可以维护已删除的ID的特定列表(可能使用Parse.Cloud.beforeDelete
),然后发出特定请求以仅获取删除。
在任何一种情况下,您都需要明确管理您选择的方案,并决定如何以及何时清理已删除的对象/删除记录。