Angular httpClient不执行网络请求

时间:2019-04-14 08:53:34

标签: angular httpclient

在我的一个服务类中,我尝试执行对Firebase身份验证API的API请求。服务类如下所示:

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';
import { catchError, tap } from 'rxjs/operators';
import { Observable, of } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class AuthService {

  private apiKey: string = '[API-Key]';

  private userToken: string;

  login(email: string, password: string): Observable<HttpResponse<string>> {
    console.log('Ich wurde ausgeführt.')
    return this.httpClient.post<string>(`https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=${this.apiKey}`, 
    {email: email, password: Password, returnSecureToken: true}, {observe: 'response'})
    .pipe(
      tap(
        response => {
          console.log(response); 
          this.userToken = response.idToken;
        }, 
        error => {
          console.log(error);
          return error;
        }
      )

    )
  }

  constructor(private httpClient: HttpClient) { }
}

在同一时刻,如果请求成功执行,我想使用httpClient发布请求的响应将响应提供的令牌值分配给Service类中的private userToken: string变量。

再次总结一下l叫的故事:我的问题是此网络请求的firebase Auth API未触发,我也不知道为什么。另外,我认为我的《进行回应》的守则相当完善,可以改进。

有人可以帮助我吗?非常感谢您,祝您愉快!

1 个答案:

答案 0 :(得分:0)

就像在组件中一样要使用它

public void init(){
    repository = Repository.getInstance();
}

public void loadItems(){
    repository.loadItems(getItemsObservable());
}

public LiveData<List<Item>> getItemsObservable() {
    if (items == null) {
        items = new MutableLiveData<>();
    }

    return items;
}