onAuthStateChanged
侦听器可以正确触发,但是getRedirectResult
始终返回null
,即使直接使用登录按钮并尝试在没有会话的情况下使用其他浏览器也是如此。
this.auth.getRedirectResult(authUser => {
if (authUser) {
} else {
fallback();
}
});
上面的代码段是我可以提供的最佳上下文,但是我很自信我可以在componentDidMount
内部正确使用它。
ty
答案 0 :(得分:0)
问题是我同时使用npm版本导入了firebase脚本。我删除了脚本,一切正常。重定向和调用getRedirectResult之间的时间延迟仍然很荒谬。
答案 1 :(得分:0)
我也遇到了同样的麻烦。
我意识到,只要user
为空,它就会在返回onAuthStateChanged
之后发出getRedirectResult
(通常情况下,onAuthStateChanged
首先出现)。
因此,我假设分辨率与firebase.auth().currentUser
相同。
这是在onAuthStateChanged
上观察到的。
引用:https://stackoverflow.com/a/49640188
但是,由于它是按照以下方式在Firebase文档中编写的,因此可能是一个错误。
通过使用观察者,您可以确保Auth对象不在 获得当前状态时的中间状态(例如初始化) 用户。当您使用signInWithRedirect时,onAuthStateChanged观察者 等待,直到getRedirectResult解析后再触发。