FirebaseのonAuthStateChangedを使用してAngularでユーザーのログイン状態を追跡するにはどうすればよいですか?

pdiffley

Firebaseでユーザーログインフローを設定し、ユーザーがログインしていないときにページにアクセスできないように保護しようとしています。Firebaseのドキュメントから、でユーザーのログイン状態を追跡できることはわかっていますonAuthStateChangedが、そうではありません。ユーザーがルートガードからログインしているかどうかを識別できるようにするために、その関数に何を含めるかを確認してください。でログイン状態を追跡するにはどうすればよいですonAuthStateChangedか?

編集:

具体的にonAuthStateChangedが呼び出されたときにルーターに指示する方法がわかりません注入されたルーターに電話をかけてみました

@Component({
  selector: 'app-root',
  templateUrl: 'app.component.html'
})
export class AppComponent {
  constructor(
    private afAuth: AngularFireAuth,
    private router: Router,
  ) {
    this.afAuth.auth.onAuthStateChanged(function(user) {
      if (user) {
        this.router.navigate('home');
      } else {
        this.router.navigate('login');
      } 
    });
  }
}

しかし、onAuthStateChangedが呼び出されると、this.router未定義であるというエラーが表示されます

pdiffley

問題は無名関数のスコープの問題であることに気づきました。=>構文を使用すると、問題が修正されます。

@Component({
  selector: 'app-root',
  templateUrl: 'app.component.html'
})
export class AppComponent {
  constructor(
    private afAuth: AngularFireAuth,
    private router: Router,
  ) {
    this.afAuth.auth.onAuthStateChanged((user) => {
      if (user) {
        this.router.navigate('home');
      } else {
        this.router.navigate('login');
      } 
    });
  }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ