从ANgular中的Firebase检索UID

时间:2019-11-18 20:32:46

标签: javascript angular firebase firebase-authentication

我在Angular项目中使用了简单的电子邮件/密码和google登录(firebase)登录身份验证。我想检索当前登录产品的用户的用户ID(UID)。 Angular是否提供检索UID的方法?

Firebase Authentication data

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);

2 个答案:

答案 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