Как исправить "Не удается прочитать свойство 'getIdToken' из null" в угловом проекте Firebase - PullRequest
0 голосов
/ 28 января 2019

Мне нужно получить токен firebase от моего authService на перехватчик моего проекта angular 5: когда пользователь впервые проходит аутентификацию, я могу получить идентификатор токена без проблем, но как только я обновлю страницу (вспомните API)у меня есть это сообщение об ошибке:
Невозможно прочитать свойство 'getIdToken' со значением NULL в 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)

моя функция getToken в authService:

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

мой код перехватчика: intercept (запрос: HttpRequest, следующий: HttpHandler): наблюдаемый> {

    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);
        })
    );
}

Спасибо за вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...