试图找到扩展(添加功能)Parse.User
的完整示例。扩展其他对象有很多,但似乎Parse.User
(以及Parse.Role
和Parse.Installation
)是特殊的例外。
SO帖子有答案,但不幸的是,他们指向的链接是旧的 parse.com 网站,没有映射到新网站。
假设我们在User
表/类中有一个名为 IsAdmin
的额外字段,我想添加一个额外的方法来检查该字段(是的可以使用 Parse.User.getCurrent().get('IsAdmin)
,但这只是一个示例)。据我所知,尽管有来自这里和那里的示例片段,但我"认为"它看起来像这样:
/**
* I "think" you need this. Docs don't explain how its fully used
*/
Parse.User.allowCustomUserClass(true);
export class User extends Parse.User {
constructor() {
super('User');
}
isThisUserAnAdmin(): boolean {
return !(!this.get('IsAdmin));
}
}
Parse.Object.registerSubclass('User', User);
/**
* Then I want to use it and call specific 'Parse.User' superclass
* functions + get the actual `User` model and NOT the `Parse.User`
*/
const makeAnAdmin = async (email: string, password: string): Promise<User> => {
return User.signUp(email, password,
{
email: email,
isAdmin: false
}
);
}
同样,看起来很丑,但这是我能找到的大杂烩。如果文档中有一个明显的答案,也请随时告诉我,因为我整天都在为此抨击。
我使用以下代码来管理我的用户。使用登录或注册方法后,我能够看到带有结果的 JSON。我希望下面的代码对您有用。
Parse.User.allowCustomUserClass(true);
export class User extends Parse.User {
email: string;
password: string;
isAdmin: string;
constructor() {
super('_User');
}
doLogin(email: string, password: string) {
Parse.User.logIn(email, password).then(object => {
console.log(object);
this.isAdmin = object.get('isAdmin');
}).catch(console.error);
}
doSignUp(username: string, email: string, password: string) {
return makeAnAdmin(email, password);
}
}
Parse.Object.registerSubclass('User', User);
const makeAnAdmin = async (email: string, password: string): Promise<User> => {
return Parse.User.signUp(email, password,
{
email: email,
isAdmin: false
}
);
}
如果仍然不起作用,请将您面临的消息粘贴到此处:)