我在Angular项目中使用了简单的电子邮件/密码和google登录(firebase)登录身份验证。我想检索当前登录产品的用户的用户ID(UID)。 Angular是否提供检索UID的方法?
this.authenticationService.SignUp(this.institutes.email,"123456");
console.log(this.af.auth.currentUser.uid);
SignUp(email: string, password: string) {
this.angularFireAuth
.auth
.createUserWithEmailAndPassword(email, password)
.then(res => {
console.log('You are Successfully signed up!', res);
this.angularFireAuth
.auth
.signInWithEmailAndPassword(email, password)
.then(res => {
console.log('You are Successfully logged in!');
return 1;
})
.catch(err => {
console.log('Something is wrong:',err.message);
});
})
.catch(error => {
console.log('Something is wrong:', error.message);
});
}
我已经注册了一个新帐户并同时登录了该用户。登录后,我尝试检索用户的UID,但收到以下错误: 错误:对象可能为'null'。 错误在线:console.log(this.af.auth.currentUser.uid);
答案 0 :(得分:2)
要检索uid,可以使用AngularFire并执行以下操作:
export class AppComponent {
constructor(public afAuth: AngularFireAuth) {
}
getUid() {
this.afAuth.auth.currentUser.uid;
}
}
您可以在此处查看更多信息:
https://github.com/angular/angularfire/blob/master/docs/auth/getting-started.md
答案 1 :(得分:2)
Peter回答了当您使用AngularFire2时如何获取登录用户的UID。如果您不使用AngularFire(或者即使您使用的也不是),则可以使用以下命令获取当前用户的UID:
firebase.auth().currentUser.uid