没有为第二个选项卡触发 Firebase onauth
Firebase onauth not fired for the second tab
在我的单页应用程序中,当用户单击 'logout' 按钮时,我调用 firebase.unauth() 。这会导致 firebase 客户端取消身份验证(这里不足为奇)并且我得到了 firebase.onAuth(callback) 调用(使用 null 参数,因为它应该是)。
到目前为止一切顺利。
当我打开第二个选项卡时出现问题(即我同时在两个选项卡中进行了身份验证)。在这种情况下,在选项卡 A 中单击注销不会导致选项卡 B 中的 onAuth 回调;此选项卡完全不知道其 firebase 客户端不再经过身份验证(直到我 F5 页面并让 firebase 客户端意识到可怕的事实)。
我不确定是否应该将其视为功能或错误;但是,很难想象这种行为会带来好处的情况。
我可以构建一些变通办法让我的应用程序正常工作,但我能想到的所有解决方案都介于这不是很稳健和天哪应该是这样的基本功能之间在系统核心中。
这是我应该报告的错误吗?如果没有,是否有一些正确的方法如何获得(显然需要的)行为(即通知所有选项卡有关该用户不再存在的事实)
我写信给 Firebase 支持;他们向我解释了导致这种情况的技术细节。然而,半认证半未认证的状态被认为是可取的(至少目前如此)。
总的来说应该对 Firebase 身份验证做些事情 - 所以,敬请期待:)
在我的单页应用程序中,当用户单击 'logout' 按钮时,我调用 firebase.unauth() 。这会导致 firebase 客户端取消身份验证(这里不足为奇)并且我得到了 firebase.onAuth(callback) 调用(使用 null 参数,因为它应该是)。
到目前为止一切顺利。
当我打开第二个选项卡时出现问题(即我同时在两个选项卡中进行了身份验证)。在这种情况下,在选项卡 A 中单击注销不会导致选项卡 B 中的 onAuth 回调;此选项卡完全不知道其 firebase 客户端不再经过身份验证(直到我 F5 页面并让 firebase 客户端意识到可怕的事实)。
我不确定是否应该将其视为功能或错误;但是,很难想象这种行为会带来好处的情况。
我可以构建一些变通办法让我的应用程序正常工作,但我能想到的所有解决方案都介于这不是很稳健和天哪应该是这样的基本功能之间在系统核心中。
这是我应该报告的错误吗?如果没有,是否有一些正确的方法如何获得(显然需要的)行为(即通知所有选项卡有关该用户不再存在的事实)
我写信给 Firebase 支持;他们向我解释了导致这种情况的技术细节。然而,半认证半未认证的状态被认为是可取的(至少目前如此)。
总的来说应该对 Firebase 身份验证做些事情 - 所以,敬请期待:)