如何修复角度Firebase项目中的“无法读取null的属性'getIdToken''null”

时间:2019-01-28 20:33:56

标签: angular typescript firebase google-cloud-firestore

我需要将Firebase令牌从我的authService获取到我的angular 5项目的拦截器:当用户首次通过身份验证时,我可以毫无问题地获取令牌ID,但是一旦刷新页面(调用API)我收到此错误消息:
无法读取null的属性“ getIdToken”     在AuthService.push ../ src / app / core / auth.service.ts.AuthService.getUserIdToken(auth.service.ts:144)     在TokenInterceptor.push ../ src / app / core / token.interceptor.ts.TokenInterceptor.intercept(token.interceptor.ts:31)

我在authService中的函数getToken:

getUserIdToken(): Observable<string> {
  return fromPromise ( this.afAuth.auth.currentUser.getIdToken() );
}

我的拦截器代码:     拦截(请求:HttpRequest,下一个:HttpHandler):Observable> {

    if (request.url.indexOf('oauthCallback') > -1) {
        return next.handle(request);
    }

    this.auth = this.inj.get(AuthService); // inject the authservice manually (see https://github.com/angular/angular/issues/18224)
    return this.auth.getUserIdToken().pipe(
        switchMap(token => {
            request = request.clone({
                setHeaders: {
                    Authorization: `Bearer ${token}`
                }
            });

            return next.handle(request);
        })
    );
}

谢谢您的帮助。

0 个答案:

没有答案