我们用Parse启动了应用程序,并且自关闭以来一直遇到问题。
销毁用户无法使用此deleteUser函数
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而没有运气。
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()
实际上从未删除用户。
我console.log所有的参数,ID和参数,以确保我得到预期的。是否有一种删除Parse用户的特殊方法?
上周突然停止了工作。
我尝试过Parse v1.6.14和v1.9.2
提前感谢您的帮助!
答案 0 :(得分:1)
这是因为自Parse-server版本2.3.0以来不推荐使用Parse.Cloud.useMasterKey()
。您现在需要在使用users表时使用useMasterKey: true
。
var query = new Parse.Query(Parse.User);
query.get({ useMasterKey: true }).then(.......)
答案 1 :(得分: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.");
}
});
});