4

シナリオ

ユーザーがアカウントを作成できるアプリがありますが、ユーザーが自分のアカウントを削除することもできます。アカウントを削除すると、ユーザーが行ったすべての「投稿」を削除するクラウドコード機能があります。私が使用しているクラウドコードは...

//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?)

4

2 に答える 2

10

あなたが使用することができます

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() ルーチンは必要ありません

于 2014-08-09T06:10:02.290 に答える
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);
    });
});
于 2014-08-19T17:25:25.030 に答える