2017-02-03 12 views
0

私たちはParseでアプリケーションを起動し、シャットダウンしてから問題を起こしています。ユーザーの破棄user.destroy()を呼び出してもデータベースレコードは実際には削除されません

Parse.Cloud.define('deleteUser', function(request, response) { 
var objectId = request.params.objectId; 

if(!objectId || objectId.length === 0 || !objectId.trim()) { 
    response.error("The user object id is needed to perform this action."); 
} 

Parse.Cloud.useMasterKey(); 
var query = new Parse.Query(Parse.User); 
query.get(objectId, { 
    success: function(user) { 
    user.destroy(null, { 
     success: response.success(user), 
     error: function(user, error) { 
     response.error(error); 
     } 
    }); 
    }, 
    error: function(error) { 
    response.error("Could not find the user."); 
    } 
}); 
}); 

deleteEventが正常に動作します。この機能は、deleteuserに動作していないと私はまた、運では​​、deleteuserため、この正確な構文をコピーしようとしました。

Parse.Cloud.define('deleteEvent', function(request, response) { 

var objectId = request.params.objectId; 

if(!objectId || objectId.length === 0 || !objectId.trim()) { 
    response.error('The event object id is needed to perform this action.'); 
    return; 
} 

Parse.Cloud.useMasterKey(); 
var query = new Parse.Query(Parse.Object.extend('Events')); 
query.get(objectId, { 
    success: function(event) { 
     event.destroy(); 
     response.success('Successfully deleted event.'); 
    }, 
    error: function(error) { 
     response.error('Could not find the event.'); 
    } 
}); 
}); 

機能は、ログの成功の呼び出しで終了しますが、user.destroy()は、実際にユーザーを削除することはありません。

I console.logすべてのパラメータ、ID、および引数を使用して、期待通りの結果が得られていることを確認します。解析ユーザーを削除する特別な方法はありますか?

先週、これは突然停止しました。

私はパースv1.6.14およびv1.9.2に助けを事前に

感謝を試してみました!

答えて

1

誰かが言ったように、Parse.Cloud.useMasterKey()はparse-serverで非推奨です。 useMasterKeyフラグを指定するか、またはsessionToken(ユーザーを偽装するため)をDBにアクセスするメソッド(get、save、first、count、...)に渡す必要があります。したがって、それに応じてコードを変更してください:

Parse.Cloud.define('deleteUser', function(request, response) { 
var objectId = request.params.objectId; 

if(!objectId || objectId.length === 0 || !objectId.trim()) { 
    response.error("The user object id is needed to perform this action."); 
} 

var query = new Parse.Query(Parse.User); 
query.get(objectId, { 
    useMasterKey: true, //HERE (1/2) 
    success: function(user) { 
    user.destroy({ 
     useMasterKey: true, //HERE (2/2) 
     success: response.success(user), 
     error: function(user, error) { 
     response.error(error); 
     } 
    }); 
    }, 
    error: function(error) { 
    response.error("Could not find the user."); 
    } 
}); 
}); 
+0

私は、甘い単純な理由を参照してください。ご協力いただきありがとうございますCipiとCliffordwh! –

1

これは、Parse-serverバージョン2.3.0以降、Parse.Cloud.useMasterKey()が廃止されたためです。 usersテーブルを使用する場合は、useMasterKey: trueを使用する必要があります。

関連する問題