调用 user.destroy() 实际上并没有删除数据库记录
Calling user.destroy() doesn't actually delete database record
我们使用 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
在此先感谢您的帮助!
这是因为 Parse.Cloud.useMasterKey()
自 Parse-server 版本 2.3.0 起已弃用。您现在需要在使用用户 table.
时使用 useMasterKey: true
var query = new Parse.Query(Parse.User);
query.get({ useMasterKey: true }).then(.......)
正如有人所说,Parse.Cloud.useMasterKey()
在 parse-server 中已弃用。您现在需要指定 useMasterKey
标志,或将 sessionToken
(模拟用户)传递给访问数据库的方法(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.");
}
});
});
我们使用 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
在此先感谢您的帮助!
这是因为 Parse.Cloud.useMasterKey()
自 Parse-server 版本 2.3.0 起已弃用。您现在需要在使用用户 table.
useMasterKey: true
var query = new Parse.Query(Parse.User);
query.get({ useMasterKey: true }).then(.......)
正如有人所说,Parse.Cloud.useMasterKey()
在 parse-server 中已弃用。您现在需要指定 useMasterKey
标志,或将 sessionToken
(模拟用户)传递给访问数据库的方法(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.");
}
});
});