使用Facebook重定向方法进行Firebase身份验证(重定向与已登录的结果不同)

时间:2016-12-09 16:05:47

标签: facebook firebase firebase-authentication facebook-authentication angularfire2

我正在使用firebase通过Facebook重定向对用户进行身份验证。我遇到的问题是,如果有人已登录,我会在重定向后直接从身份验证中获得不同的响应。

let provider = new firebase.auth.FacebookAuthProvider();
provider.addScope('user_friends');
this.FIREAUTH.signInWithRedirect(provider);

我正在使用角火来订阅数据,这个函数给了我不同的响应。我的问题是为什么它们不同,重定向完成登录后我该怎么办? Firebase似乎没有看到我在重定向后登录。

authSubscribe(reader) {
  this.af.auth.subscribe(data => {
    if (data && data.uid) {this.uid = data.uid;}
    console.log('authentication subscribe: ', data);
    reader(data);
  });
}
重定向后

after redirect

在已登录时刷新 on refresh when already logged in

1 个答案:

答案 0 :(得分:0)

这里有些错误:

authSubscribe(reader) {
    this.af.auth.subscribe(data => {
        if (data && data.uid) {this.uid = data.uid;}
        console.log('authentication subscribe: ', data);
        reader(data);
    });
}

如果你检查控制台,它应该是这样的:

authSubscribe(reader) {
    this.af.auth.subscribe(data => {
        if (data && data.auth.uid) {this.uid = data.auth.uid;}
        console.log('authentication subscribe: ', data);
        reader(data);
    });
}

data.auth.uid,而不是data.uid。 auth是一个对象