javascript - 调用 user.destroy() 并不会真正删除数据库记录

标签 javascript parse-platform destroy

我们使用 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() 在解析服务器中已被弃用。您现在需要指定 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.");
  }
});
});

关于javascript - 调用 user.destroy() 并不会真正删除数据库记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42016367/

相关文章:

ios - Parse Swift - 子类化 PFObject - 设置属性导致应用程序挂起且没有错误消息

安卓 : Get objects from multiple Relations

javascript - YouTube API 开始视频位于

javascript - HTML5 在图像或视频点击上播放暂停视频

javascript - jQuery - 元素闪烁

ios - 弹出一个具有异步任务的 viewController,它会在 iOS 任务完成之前销毁吗?

php - 关于 session_destroy 的模糊性

javascript - 配置 webpack encore 进行异步和等待(Symfony 4 和 VueJs)

php - 在 parse.com 静态内容托管中使用一些基本的 PHP

jquery - 无法重新初始化数据表 - 数据表的动态数据