解析:删除用户及其相关记录

Ant*_*ton 2 javascript objective-c parse-platform

我有带有实体的解析表。User - 默认类 Commets - 带有指向 _User 实体的指针的类。

我需要从实体 User 中删除用户及其所有评论,位于 Comments 实体中:

现在我有JS云代码:

Parse.Cloud.define("deleteUser", function(request, response) {
                   var User = Parse.Object.extend("User");
                   var query = new Parse.Query(User);
                   var userID = request.params.userID;
                   query.get(userID,{
                             success: function(User) {
                             var message = 'success';

                             User.destroy({
                                          useMasterKey: true ,
                                            success:function() {
                                            response.success(message);
                                            return;
                                            },
                                            error:function(error) {
                                            response.error('Could not delete object '+ User.id);
                                            return;
                                            }
                                            });
                             },
                             error: function(object, error) {
                             var message = 'User could not found';
                             response.error(message);
                             }
                             });
                   });
Run Code Online (Sandbox Code Playgroud)

它仅删除用户。我如何组合以删除用户从其他实体中删除的记录?

感谢您的提前

Bjö*_*ser 5

正如 eth3lbert 在评论中指出的那样,您应该使用 afterDelete 钩子,该钩子在删除 User 对象后被调用。您可以启动您想要的任何其他删除操作。

然而,有一个小问题,before* 和 after* 方法在 3 秒的挂钟时间后被终止,这可能会导致不需要的结果,具体取决于您需要删除的数据量。

最适合您的解决方案是设置一个后台作业(它们最多可以运行 15 分钟),安排其运行(假设每天运行一次),并在该作业中执行任何清理工作。

您可以为此创建一个简单的表,其中包含已删除用户的 objectId,每当您的afterDelete方法被调用时,您将已删除的用户 id 添加到该表中,然后后台作业在运行时查询该表并删除与它。