角路由导航将在Tap操作符中不起作用

时间:2019-10-30 19:30:32

标签: angular typescript

这是signIn方法,虽然尚不完善,但直到我进行了一些重构(现在警卫人员返回Observable)后它才起作用:

  public signInWithGooglePopup(): any {
    this.firebaseAuthService.setMediaProvider(new auth.GoogleAuthProvider());
    this.firebaseAuthService.signInWithPopup()
        .pipe
        (
          tap(() => this.router.navigate(['home'])),
          map(userCredential => new FirebaseUser().deserialize(userCredential.user)),
          switchMap(firebaseUser => this.firebaseUserService.update(firebaseUser))
        ).subscribe();
  }

似乎在那段重构之后,导航就变成了狗...我不知道为什么。

单击我的Sign In按钮后,即使我可以通过在地址栏中键入其URL来访问主页(应该导航至该主页),该URL仍保持不变。那是导航不起作用。我在做什么错了?

编辑:

这是身份验证保护内部的逻辑:

    return this.firebaseAuthService.isSignedIn().pipe(
      map(
        isLoggedIn => {
          if (isLoggedIn) {
            return true;
          } else {
            this.router.navigate(['sign-in']);
            return false;
          }
        }
      )
    );

0 个答案:

没有答案