私は、ユーザーのカスタムプロパティを設定しようとしたりauth.updateProfile
メソッドを使用して属性が、それはそのdocsで述べていますので、それだけでdisplayName
プロパティを保存してきた:Angular2 Firebase設定ユーザーカスタムPropertise
this.af.auth.createUser({
email: formData.value.email,
password: formData.value.password,
}).then((user) => {
let userProfile = formData.value;
userProfile.role = AuthService.ROLE_PATIENT;
userProfile.displayName = `${formData.value.firstName} ${formData.value.lastName}`;
user.auth.updateProfile(userProfile).then(function(){
this.router.navigate(['/']);
});
今の問題はどのように設定することができます私はそれらを得ることができるので、ユーザーのカスタムプロパティFirebaseAuthState
質問:なぜ私は各ユーザーとカスタムプロパティを保存する必要がありますか?
回答:私は、データベースの例では、保存されているrole
プロパティ使用して、特定の経路を活性化させるためにAuth Guardで働いているので:
canActivate(route: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
//Currently I'm using this which only check that user is logged in or not
return this.auth
.take(1)
.map((authState: FirebaseAuthState) => !!authState)
.do(authenticated => {
if (!authenticated) this.router.navigate(['/login']);
});
}
をしかし、私は、ユーザーを検証するために、1つの以上のチェックをしたいの役割を持っています上記のユーザーを作成している間に保存した患者: return user.role == 'patient'
FirebaseコンソールとGoogle Cloudコンソールは、同じ基本的な役割と権限を使用します。高レベルでは、これらは所有者、エディタ、およびビューアです。 –
私の問題を解決できません、あなたは適切な解決策や役割の特定のものに理論を持つことができますか? –
doでそれらを組み合わせることはできませんか? – Chrillewoodz