方案
我有一个允许用户创建帐户的应用,但也允许用户删除其帐户。删除他们的帐户后,我有一个云代码功能,将删除用户所做的所有“发布”。我正在使用的云代码是......
//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?
)
答案 0 :(得分:6)
您可以使用
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#methods_destroyAll
另外,考虑在Parse.User上使用Parse.Cloud.afterDelete(如果你的意思是"删除帐户")来进行清理,例如这些。
哦,只是为了完成,你在destroyAll()之后不需要save()例程
答案 1 :(得分:2)
在线下方更新您的"我该怎么做?"评价:强>
注意:
您不需要调用save()方法,所以我把它拿出来了。
当然,这仅仅是个人偏好的问题,但是你可能想要选择一个比#34;用户更有意义的参数名称,因为你是"真的不是查询用户,而是帖子(恰好与用户有关)。
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);
});
});