用户注册时创建空白配置文件
Create a blank profile when user signs up
我知道这个问题以前在这里被问过一次,但我需要知道 parse 是否对此做了任何处理。
我的默认用户 table 有一个指向 UserProfile class 的指针字段。
注册时我在下面有这个云代码。
Parse.Cloud.beforeSave(Parse.User,async (request)=>{
const user = request.object;
//Making a new Teacherprofile Class
const Objectextension = Parse.Object.extend("TeacherProfile");
const teacherProfile = new Objectextension();
teacherProfile.set("name", "harry");
//Putting teacher profile pointer
user.set("tProfile",teacherProfile);
});
这只是行不通,导致 timeout.Is 在保存之前创建用户配置文件并将其关联到用户 Table?谢谢
更新
这是工作代码。
Parse.Cloud.beforeSave(Parse.User,async (request)=>{
const user = request.object;
//if user id does not exists
//it is a new user
if (!user.id) {
//Making a new User Profile Object
const profileObject = Parse.Object.extend("TeacherProfile");
const teacherProfile = new profileObject();
teacherProfile.set("name", "harry");
await teacherProfile.save(null,{ useMasterKey: true });
//Putting teacher profile pointer in user
user.set("tProfile",teacherProfile);
}else{
console.log('old user');
}
});
经过更多的实验后,我得出结论,在保存之前创建用户配置文件是不可取的。
注册时假设用户名或电子邮件已经存在,那么注册不会发生但无论如何都会保存配置文件。
所以我建议不要这样做
或者您可以使用此代码。
Parse.Cloud.afterSave(Parse.User, (request) => {
if(!request.original){
//Object saved for first time. This codes will work just first time. And will not work after object saved again.
const user = request.object;
const profileObject = Parse.Object.extend("TeacherProfile");
const teacherProfile = new profileObject();
teacherProfile.set("name", "harry");
await teacherProfile.save(null,{ useMasterKey: true });
//Putting teacher profile pointer in user
user.set("tProfile",teacherProfile);
user.save(null,{useMasterKey:true});
}
});
我知道这个问题以前在这里被问过一次,但我需要知道 parse 是否对此做了任何处理。 我的默认用户 table 有一个指向 UserProfile class 的指针字段。 注册时我在下面有这个云代码。
Parse.Cloud.beforeSave(Parse.User,async (request)=>{
const user = request.object;
//Making a new Teacherprofile Class
const Objectextension = Parse.Object.extend("TeacherProfile");
const teacherProfile = new Objectextension();
teacherProfile.set("name", "harry");
//Putting teacher profile pointer
user.set("tProfile",teacherProfile);
});
这只是行不通,导致 timeout.Is 在保存之前创建用户配置文件并将其关联到用户 Table?谢谢
更新
这是工作代码。
Parse.Cloud.beforeSave(Parse.User,async (request)=>{
const user = request.object;
//if user id does not exists
//it is a new user
if (!user.id) {
//Making a new User Profile Object
const profileObject = Parse.Object.extend("TeacherProfile");
const teacherProfile = new profileObject();
teacherProfile.set("name", "harry");
await teacherProfile.save(null,{ useMasterKey: true });
//Putting teacher profile pointer in user
user.set("tProfile",teacherProfile);
}else{
console.log('old user');
}
});
经过更多的实验后,我得出结论,在保存之前创建用户配置文件是不可取的。 注册时假设用户名或电子邮件已经存在,那么注册不会发生但无论如何都会保存配置文件。 所以我建议不要这样做
或者您可以使用此代码。
Parse.Cloud.afterSave(Parse.User, (request) => {
if(!request.original){
//Object saved for first time. This codes will work just first time. And will not work after object saved again.
const user = request.object;
const profileObject = Parse.Object.extend("TeacherProfile");
const teacherProfile = new profileObject();
teacherProfile.set("name", "harry");
await teacherProfile.save(null,{ useMasterKey: true });
//Putting teacher profile pointer in user
user.set("tProfile",teacherProfile);
user.save(null,{useMasterKey:true});
}
});