【发布时间】:2017-01-27 17:31:07
【问题描述】:
我正在使用 AngularFire2 (Ionic2) 和 Firebase 身份验证。
我在尝试获取当前用户时遇到问题。对我有用,但不一致。有时它被填充,有时它为空。
let user: firebase.User = firebase.auth().currentUser;
有没有办法让当前用户更加一致?
更多信息:
我的登录方式如下:
import { FirebaseAuth, AuthProviders, AuthMethods } from 'angularfire2';
public auth: FirebaseAuth
this.auth.login({
provider: AuthProviders.Google,
method: AuthMethods.Popup
}).then((data: any) => {
this.fireAuth.onAuthStateChanged((user) => {
....
});
});
这里总是填充用户。但是我需要访问用户的地方是在代码的另一部分。
任何帮助表示赞赏。
更新
我尝试使用以下方法获取当前用户:
this.auth.subscribe((authData) => {
let user = authData.auth;
credential = firebase.auth.GoogleAuthProvider.credential(googleIdToken, googleAccessToken);
user.reauthenticate(credential).then(() => {...
});
但是当我尝试创建凭据时,我收到以下错误:
异常:未捕获(承诺中):错误:重新验证失败:首先 参数“凭据”必须是有效的凭据。
当我在第一种方法中获取当前用户时,我没有收到任何错误并且它有效。
更多信息:
当我console.log 以下user 对象时,它们看起来都一样:
let user: firebase.User = this.fireAuth.currentUser;
console.log(user);
和
this.auth.subscribe((authData) => {
let user: firebase.User = authData.auth;
console.log(user);
});
但一个有效(当不为空时),另一个无法重新验证。
【问题讨论】:
-
当你尝试
login时,你为什么要尝试reauthenticate?在login过程中,您如何reauthenticate?
标签: angular firebase ionic2 firebase-authentication angularfire2