Parse platform 在第一次保存之前修改Parse.User对象

Parse platform 在第一次保存之前修改Parse.User对象,parse-platform,Parse Platform,我正在开发一个应用程序,我需要对在特定时间注册的新用户进行一些更改 我添加了一个我将手动更改的变量,并检查该值是否为真 这是我当前的代码: Parse.Cloud.beforeSave(Parse.User, function(request, status) { console.log("********************************************"); Parse.Cloud.useMasterKey(); var special = true;

我正在开发一个应用程序,我需要对在特定时间注册的新用户进行一些更改

我添加了一个我将手动更改的变量,并检查该值是否为真

这是我当前的代码:

Parse.Cloud.beforeSave(Parse.User, function(request, status)
{
  console.log("********************************************");
  Parse.Cloud.useMasterKey();
  var special = true;
  if(special)
  {
    request.object.set("points", 1000);
    request.object.set("role/objectid", "PZHTquGti0");
  }else{
    request.object.set("points", 0);
    request.object.set("role/objectid", "TQyjIY59oL");
  }
  console.log("********************************************");
  status.success("Job finished successfully!");
}); // end of Parse.define
这段代码错误为“uncaughterror:change必须传递一个Parse.Object”,我一直在查看文档以了解如何更改User对象的子类的值,但没有发现任何错误

另外,这段代码在更新用户时也会运行,我不希望它这样做。
非常感谢您的帮助

首先,对于在第一次保存(插入)时运行代码,您可以使用

由于
角色
列是一个指针,您应该设置一个对象&而不是直接设置id字符串。 因此,创建一个新的虚拟对象并为其分配id

Parse.Cloud.beforeSave(Parse.User, function(request, status)
{
  console.log("********************************************");
  Parse.Cloud.useMasterKey();

  if(request.object.isNew()){ // Object Insert
      var Role = Parse.Object.extend("_Role");
      var role = new Role();

      var special = true;
      if(special)
      {
        request.object.set("points", 1000);
        role.id = "PZHTquGti0";
        request.object.set("role", role);
      }else{
        request.object.set("points", 0);
        role.id = "TQyjIY59oL";
        request.object.set("role", role);
      }
  }
  else{ // Object Update
    //Do nothing
  }
  console.log("********************************************");

  status.success("Job finished successfully!");
}); // end of Parse.define

与用户关联的角色的列名和类型是什么?该列名为role,是指向role.Hmm的指针。仍然得到相同的错误。是否有关于CloudCode功能的详细文档?在可用文档中从未找到关于request.object.isNew的任何信息。
if(request.object.id==null)
也以同样的方式工作。是否尝试使用新角色对象?是。我照你写的做了。今天将尝试使用request.object.id==null。