Parse platform 解析-在保存之前修改PFObject?

Parse platform 解析-在保存之前修改PFObject?,parse-platform,Parse Platform,在系统中创建使用时,我希望为它们创建一个空白配置文件。 下面的代码似乎不起作用,我遗漏了什么 我在日志中没有看到任何错误,配置文件创建成功 Parse.Cloud.beforeSave("User", function(request, response) { if (request.object.get("profile") == null) { request.object.fetch().then(function(user){ var Pr

在系统中创建使用时,我希望为它们创建一个空白配置文件。 下面的代码似乎不起作用,我遗漏了什么

我在日志中没有看到任何错误,配置文件创建成功

Parse.Cloud.beforeSave("User", function(request, response) {
    if (request.object.get("profile") == null) {
        request.object.fetch().then(function(user){
            var Profile = Parse.Object.extend("Profile");
            var profile = new Profile();
            user.set("profile", profile);
            response.success();
        });
    }
    else {
        response.success();
    }
});
如果您尝试“\u用户”,会发生什么情况?我很确定这就是解析集的用户类。所以像这样:

Parse.Cloud.beforeSave("_User", function(request, response) {
    if (request.object.get("profile") == null) {
        request.object.fetch().then(function(user){
            var Profile = Parse.Object.extend("Profile");
            var profile = new Profile();
            user.set("profile", profile);
            response.success();
        });
    }
    else {
        response.success();
    }
});

在这种情况下,您需要先保存配置文件:

Parse.Cloud.beforeSave("_User", function(request, response) {
    if (request.object.get("profile") == null) {
        request.object.fetch().then(function(user){
            var Profile = Parse.Object.extend("Profile");
            var profile = new Profile();
            return profile.save();
        }).then(function(profile) {
            user.set("profile", profile);
            response.success();
        });
    }
    else {
        response.success();
    }
});

谢谢,这解决了部分问题。现在我发现无法序列化未保存的Parse.Object。这是因为当我调用fetch时,对象不存在。我不想将代码移动到afterSave,因为我想确保在没有配置文件的情况下永远不会创建用户,但这是另一个问题。我将接受这一问题作为答案。我非常确定有一个变量,如
request.User
或包含对进行调用的PFUser的引用的某个变量,但不确定这在这里是否有效。我以前从没试过救一个PFUser。祝你好运