Firebase身份验证检测用户是否来自重定向登录

时间:2020-05-02 23:57:01

标签: javascript firebase firebase-authentication

使用Firebase身份验证的firebase.auth().getRedirectResult()方法时,是否可以检测到我们是否应该期待结果(或者用户是否来自重定向登录)?

运行此方法以及成功/错误回调发生的时间有所延迟。我想尽快显示一些加载状态,并且在文档中看不到任何方法,例如isRedirectResult


例如,我想要这样的东西(伪代码)

button.onclick = () => {
  firebase.auth().signInWithRedirect(provider);
}
if (isFromRedirectPage) { // how do i do this??
  button.loading = true;
  await firebase.auth().getRedirectResult();
  button.loading = false;
} else {
  button.show();
}

1 个答案:

答案 0 :(得分:1)

在调用该方法时可能会感到困惑,但我毕竟可以使用firebase.auth().onAuthStateChanged((user) => {...})来解决这个问题。

即使用户未登录,此方法也会调用回调函数,所以我用它来确定加载状态:

loading = true;
firebase.auth().onAuthStateChanged((user) => {
  loading = false;
  if (!user) {
     // show login button
  } else {
     // hide login button
  }
});