Parse beforeSave删除用户的上一篇文章

时间:2014-04-14 22:44:22

标签: ios parse-platform

阅读标题,当用户创建帖子时,应删除以前的帖子。它没有用。

Pheed包含usercomment个字段。

更新:现在Can't Serialize an unsaved Parse Object返回新代码。

更新:新答案有效,但仅使用afterSave删除全部,需要以某种方式保留最新状态/评论

Parse.Cloud.beforeSave("Pheed", function(request, response) {

                   var user = new Parse.User({id:request.user.username});
                   var query = new Parse.Query("Pheed");
                   query.equalTo("user", user);

                   query.find({
                              success: function(results) {
                              for (i = 0; i < results.length; i++) {
                              results[i].destroy({});
                              };
                              results.save();
                              response.success();
                              }
                              ,

                             error: function(object, error) {
                             response.error();
                             }

                    }); // find
                });// beforeSave

2 个答案:

答案 0 :(得分:2)

这是使用Promises和Parse.Query上的.each方法实现此目的的方法。

Parse.Cloud.beforeSave("Pheed", function(request, response) {

  var query = new Parse.Query("Pheed");
  // Assuming "user" is a Pointer column of to ParseUser (_User)
  query.equalTo("user", request.user);
  query.each(function (obj) {
    return obj.destroy();
  }).then(function() {
    response.success('Deleted all Pheeds for this user.');
  });

}

答案 1 :(得分:0)

1)从request.params获取参数。 2)“Pheed”上的用户栏是否真的包含用户名?有一个指向用户的指针会更好(而且列名更有意义)。

如果是,请发送带有请求的user.objectId,然后......

var user = new Parse.User({id:request.params.userId});
var query = new Parse.Query("Pheed");
query.equalTo("user", user);

如果“Pheed”对象确实保留了用户名,那么你可以这样做:

var query = new Parse.Query("Pheed");
query.equalTo("user", request.params.username);