如何在 Firebase 中调试身份验证?

How do I debug authentication in Firebase?

目前,当我将身份验证登录流程设置为重定向时,登录过程没有完成,尽管它确实转到了 Google 或 Facebook 登录屏幕。但是,当我将登录流程设置为弹出窗口时,身份验证过程会按预期进行。我很好奇的是如何在 Firebase 中调试身份验证?控制台只显示前端 javascript 相关代码,很明显,当我登录或注销时,无论是通过弹出窗口还是重定向,firebase 控制台中的 DebugView 都没有显示任何内容。找出身份验证错误与重定向登录流程模式相关的步骤是什么?

我的app.js代码如下:

firebaseUI.start('#firebaseui-auth-container', {
    signInFlow: 'redirect',
    signInSuccessUrl: 'http://www.bing.com',
    signInOptions: [
      firebaseDB.firebase_.auth.EmailAuthProvider.PROVIDER_ID,
      firebaseDB.firebase_.auth.GoogleAuthProvider.PROVIDER_ID,
      firebaseDB.firebase_.auth.FacebookAuthProvider.PROVIDER_ID
    ],
  });

  firebase.auth().onAuthStateChanged(user => {
    if (user) {
      console.log(user.displayName);
    } else {
      console.log('no user signed in');
    }
  });

想到几个提示:

(1) 仔细查看浏览器上的 JavaScript 控制台日志。 JavaScript 因“吐出 error-message(在您通常看不到它的地方...)并继续前进。"

(2) 仔细查看 server-side Firebase 和 Web 服务器的日志。 感兴趣的序列可能涉及一次或多次“往返” " 在几个不同的软件之间,您需要 有条不紊地、系统地重建 究竟发生了什么以及以什么顺序发生。 “整个time-line”。

(3) "不要 假设!" "信任,但验证,“ 像他们说的那样。不要根据任何关于实际问题是什么的“假设”采取行动 – 例如 这里您可能“假设”这是“Firebase 身份验证”中的问题。假设可以让你“追白兔”很长时间,结果很苦恼 empty-handed。 (相信我这一点...)

您可能不会从“TCP/IP 转储程序”(例如 tcpdump ...)中获得太多有用的信息,因为通信可能已加密。