【发布时间】:2015-10-12 20:19:40
【问题描述】:
在我的单页应用程序中,当用户单击“注销”按钮时,我会调用 firebase.unauth()。这会导致 firebase 客户端取消身份验证(这并不奇怪),并且我调用了 firebase.onAuth(callback) (应该是 null 参数)。
到目前为止一切顺利。
当我打开第二个选项卡(即我同时在两个选项卡中进行身份验证)时,就会出现问题。在这种情况下,在选项卡 A 中单击注销不会导致选项卡 B 中的 onAuth 回调;此选项卡完全不知道其 firebase 客户端不再经过身份验证(直到我 F5 页面并让 firebase 客户端意识到可怕的事实)。
我不确定是否应该将其视为功能或错误;然而,很难想象这样的行为是有益的。
我可以构建一些解决方法以使我的应用程序正常运行,但我能想到的所有解决方案都介于 this-is-not-very-robust-ish 和 omg-such-basic-functionality-should-be-in- 之间系统的核心。
这是我应该报告的错误吗?如果没有,是否有一些正确的方法来获得(显然需要的)行为(即所有选项卡都会收到有关该用户不再存在的事实的通知)
【问题讨论】:
-
我刚刚发现,更糟糕的是:当我在一个选项卡中取消身份验证时,第二个选项卡是半身份验证:它可以执行请求(即使是需要登录用户的验证规则也可以这样)。但是,当我刷新第二个选项卡时,身份验证丢失。