return user.uid onAuthStateChanged

return user.uid onAuthStateChanged

我有一个小功能,当我在控制台中查看时它可以工作:returns user.uid 在控制台中,但我想 return uid 用于其他功能

newUserUid() {
return firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
   console.log(user.uid);
  }
});
}

我想像这样运行 return uid:ewfwe3423sdfsdakmasd

您需要subscribe进入授权状态。您正在 Angular 2 应用程序中使用 JavaScript SDK,请改用 AngularFire2 SDK。

import { AngularFireAuth } from 'angularfire2/auth';
...
constructor(public af: AngularFireAuth) {}
...

someOtherFunction() {
    newUserUid().subscribe(auth => {
        // Now use value 
        if (auth) {
            console.log(auth.uid);
        } else {
           // logged out
        }
    });
}

newUserUid() {
    return this.af.auth;
}

参考文献:Here and here