【问题标题】:Angular8 AngularFireAuth: authState.map for Guard canActivate() error: Property 'map' does not exist on type 'Observable<User>'Angular8 AngularFireAuth:Guard canActivate() 的 authState.map 错误:“Observable<User>”类型上不存在属性“map”
【发布时间】:2019-11-14 10:15:58
【问题描述】:

尝试在警卫上定义 canActive() 时,Angular8 AngularFireAuth 出现错误

我收到一个错误:

“可观察”类型上不存在属性“地图”。ts(2339)

import { Injectable } from "@angular/core";
import { CanActivate, Router } from '@angular/router';
import { AngularFireAuth } from 'angularfire2/auth';
import { Observable } from 'rxjs';

@Injectable()
export class AuthGuard implements CanActivate {
  constructor(private router: Router, private afAuth: AngularFireAuth) { }

  canActivate(): Observable<boolean> {
    this.afAuth.authState.map(auth => {
      if(!auth) {
        this.router.navigate(['/login']);
        return false;
      } else {
        this.router.navigate(['/']);
        return true;
      }
    })
  }
}

【问题讨论】:

    标签: firebase angular8 angular-router-guards


    【解决方案1】:
    import { Injectable } from "@angular/core";
    import { CanActivate, Router } from '@angular/router';
    import { AngularFireAuth } from 'angularfire2/auth';
    import { Observable } from 'rxjs';
    import { map } from 'rxjs/operators'
    
    @Injectable()
    export class AuthGuard implements CanActivate {
      constructor(private router: Router, private afAuth: AngularFireAuth) { }
    
      canActivate(): Observable<boolean> {
        return this.afAuth.authState.pipe(map((user)=>{
          if(user) {
            return true;
          }
          this.router.navigate(['/login'])
          return false;
        }))
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-01-29
      • 1970-01-01
      • 2018-07-30
      • 1970-01-01
      • 2016-09-09
      • 2020-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多