मैं उपयोगकर्ता कस्टम गुण सेट करने का प्रयास किया गया है या auth.updateProfile
पद्धति का उपयोग करके जिम्मेदार बताते हैं लेकिन यह केवल displayName
संपत्ति क्योंकि यह अपनी docs में उल्लेख किया गया है को बचाने: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
प्रश्न: मुझे प्रत्येक उपयोगकर्ता के साथ कस्टम गुणों को सहेजने की आवश्यकता क्यों है?
उत्तर: क्योंकि मैं Auth Guard साथ काम कर रहा हूँ role
संपत्ति जो डेटाबेस उदाहरण में सहेजा जाता है का उपयोग कर एक विशेष मार्ग को सक्रिय करने के:
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']);
});
}
लेकिन मैं एक और जांच चाहते उपयोगकर्ता को मान्य करने की भूमिका है रोगी जिसे मैंने ऊपर उपयोगकर्ता बनाते समय सहेजा है उदाहरण: return user.role == 'patient'
फायरबेस कंसोल और Google क्लाउड कंसोल समान अंतर्निहित भूमिकाओं और अनुमतियों का उपयोग करता है। उच्च स्तर पर, ये मालिक, संपादक और दर्शक हैं। –
जो मेरी समस्या का समाधान नहीं करेगा, क्या आपके पास विशिष्ट विशिष्ट भूमिका के लिए उचित समाधान या सिद्धांत हो सकता है? –
क्या आप उन्हें बस में जोड़ नहीं सकते? – Chrillewoodz