Firebase登录的成功回调未调用

时间:2019-11-07 12:35:27

标签: angular firebase firebase-authentication

我已经在我的项目中实现了AuthGuardFirebase登录的路由,并且我正在使用callbacks来监听Firebase登录的成功和失败并采取相应的行动。 / p>

successCallback(signInSuccessData) {
    console.log("Received with Success!");
}

errorCallback(errorData) {
    console.log("Login Failed!");
} 

不过,firebaseui-angular的自定义回调在此处已针对匿名,电子邮件和Google登录正常运行。 (检查控制台中的回调)

https://stackblitz.com/edit/angular-qgcgn1

但是,当我添加AuthGuardAuthService并将参数重定向到相同参数时,它仅响应Google登录。 (单击任何路由,并应在登录后进行相应重定向,请检查控制台)。我的意思是它正在登录我,但未调用回调,该回调应该在成功登录后将用户重定向到其页面。

https://stackblitz.com/github/sizilkrishna/app-angular-onlinetools

这是我登录后重定向用户的方式,

 returnUrl: string;

  constructor(
    public auth: AuthService,
    private router: Router,
    private route: ActivatedRoute,
    public afAuth: AngularFireAuth) { }

  ngOnInit() {
    this.route.queryParams.subscribe(
      retUrl => {
        this.returnUrl = retUrl.returnUrl || '/';
        console.log("You are set to redirected to " + this.returnUrl);
      }
    );
  }

  successCallback(signInSuccessData) {
    console.log("Child Callback, Logged in! Redirecting to " + this.returnUrl);
    this.router.navigateByUrl(this.returnUrl);
  }

  errorCallback(errorData) {
    console.log("Login failure!");

  }

请为这个问题指导我。

谢谢。

1 个答案:

答案 0 :(得分:0)

问题是您的角度代码而不是firebase-ui npm软件包。如果您从login.component.html中的div中删除*ngIf="!afAuth.auth.currentUser",那么您将看到在成功登录email后调用了回调“ successCallback(signInSuccessData)”。