Как я могу войти в систему пользователя синхронно после создания пользователя с помощью firebase аутентификации в angular? - PullRequest
1 голос
/ 23 апреля 2020

Я пытаюсь, чтобы пользователи напрямую входили в мое приложение после создания с помощью аутентификации Firebase. У меня есть метод signUp и метод signIn.

У меня есть authguard, который возвращает отказ в доступе при вызове метода signIn после создания пользователя.

Мой метод signUp выглядит следующим образом:

  // Sign up with email/password
async signUp(email, password) {
  return this.afAuth.createUserWithEmailAndPassword(email, password)
    .then((result) => {
      this.signIn(email, password);
    }).catch((error) => {
      console.log(error);
    });
}

Мой метод входа выглядит следующим образом:

// Sign in with email/password
async signIn(email, password) {
  // sign user into firebase auth but not into the application
  return this.afAuth.signInWithEmailAndPassword(email, password)
    .then((result) => {
      this.router.navigate(['auth']);
    }).catch((error) => {
      window.alert(error.message);
    });
}

Вот мой метод аутентификации:

  canActivate(next, state): Observable<boolean> {
    return this.auth.user$.pipe(
      take(1),
      map(user => !!user),
      tap(loggedIn => {
        if (!loggedIn) {
          console.log('access denied');
          this.router.navigate(['/']);
        }
      })
    );
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...