AngularFire2:通过多个浏览器选项卡通知注销

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AngularFire2:通过多个浏览器选项卡通知注销相关的知识,希望对你有一定的参考价值。

我正在开发一个与Firebase连接的Angular应用程序。如果我在浏览器中有2个应用程序实例并从一个实例中注销,如何通知另一个实例该用户不再经过身份验证并且应取消订阅Firebase。

我提供了一个stackblitz,它订阅了Firebase的真实实例。单击sign in时,它会登录并获取文档。这会重新创建场景,但由于它只在控制台上输出日志,因此它仍然无法按照实际项目的预期工作。

Stackblitz. To recreate, open 2 instances of it, sign in one of them and signout.

答案

我不确定这是否是你需要的,因为我无法重现错误。虽然发布它无论如何。

export class SomeComponentOrService{
    private subscription: Subscription;

    constructor(private afAuth: AngularFireAuth){
        this.subscription = afAuth.subscribe(res => {
            if(isNullOrUndefined(res){
                this.subscription.unsubscribe();
            }
        });
    }
}
另一答案

添加可能是问题的另一个答案。

this.afAuth.auth.signOut();

auth是现在的州。如果用户已注销,则当前状态可能为null。简单的空检查可能会修复您的错误。

if(!isNullOrUndefined(this.afAuth.auth){
    this.afAuth.auth.signOut();
}

以上是关于AngularFire2:通过多个浏览器选项卡通知注销的主要内容,如果未能解决你的问题,请参考以下文章

Chrome 扩展程序:单击通知会打开多个选项卡

打开多个应用程序选项卡时通知未关闭

关闭浏览器或选项卡时如何获取 Web 通知

如果在 2 个浏览器选项卡上,Angularjs 通知显示两次

在 Chrome 中单击浏览器通知时如何自动聚焦浏览器选项卡?

Crashlytics 在编译 iOS 项目期间打开多个浏览器选项卡