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。