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 ответа
Обновления в строке ниже под вашим комментарием "Что мне делать ЗДЕСЬ...":
ЗАМЕТКИ:
Вам не нужно вызывать метод save(), поэтому я убрал это.
Это, конечно, просто вопрос личных предпочтений, но вы можете выбрать имя параметра, которое имеет немного больше смысла, чем "пользователи", поскольку вы на самом деле не опрашиваете пользователей, а скорее сообщения (это просто быть связанным с пользователем).
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()