Parse Cloud Code: удалить все объекты после запроса

сценарий

У меня есть приложение, которое позволяет пользователям создавать учетные записи, но также позволяет пользователю удалять их учетные записи. После удаления их учетной записи у меня есть функция облачного кода, которая удалит все "сообщения", сделанные пользователем. Я использую облачный код...

//Delete all User's posts
Parse.Cloud.define("deletePosts", function(request, response) {

    var userID = request.params.userID;

    var query = new Parse.Query(Parse.Post);
    query.equalTo("postedByID", userID);
    query.find().then(function (users) {

        //What do I do HERE to delete the posts?

        users.save().then(function(user) {
        response.success(user);
        }, function(error) {
        response.error(error)
        });

    }, function (error) {

         response.error(error);

    });

});

Вопрос

Как только я сделаю запрос для всех сообщений пользователя, как мне их удалить? (увидеть: //What do I do HERE?)

2 ответа

Решение

Обновления в строке ниже под вашим комментарием "Что мне делать ЗДЕСЬ...":

ЗАМЕТКИ:

  1. Вам не нужно вызывать метод save(), поэтому я убрал это.

  2. Это, конечно, просто вопрос личных предпочтений, но вы можете выбрать имя параметра, которое имеет немного больше смысла, чем "пользователи", поскольку вы на самом деле не опрашиваете пользователей, а скорее сообщения (это просто быть связанным с пользователем).


Parse.Cloud.define("deletePosts", function(request, response) {
    var userID = request.params.userID;

    var query = new Parse.Query(Parse.Post);
    query.equalTo("postedByID", userID);
    query.find().then(function (users) {

        //What do I do HERE to delete the posts?
        users.forEach(function(user) {
            user.destroy({
                success: function() {
                    // SUCCESS CODE HERE, IF YOU WANT
                },
                error: function() {
                    // ERROR CODE HERE, IF YOU WANT
                }
            });
        });
    }, function (error) {
         response.error(error);
    });
});

Вы могли бы использовать

Parse.Object.destroyAll(users); // As per your code – what you call users here are actually posts

Смотрите: http://parseplatform.org/Parse-SDK-JS/api/classes/Parse.Object.html

Кроме того, рассмотрите возможность использования Parse.Cloud.afterDelete для Parse.User (если вы подразумеваете это "удаление учетной записи") для выполнения подобных очисток.

Да, и просто чтобы завершить, вам не нужна подпрограмма save() после destroyAll()

Другие вопросы по тегам