在我的一个Service类中,我尝试对firebase authentification API执行API请求。 Service类看起来像这样:
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 post请求中的响应来将Response提供的令牌值设置为Service类中的private userToken: string
变量。
再次结束嚎叫故事:我的问题是这个网络请求firebase Auth API没有被触发,我不知道为什么。此外,我认为我的代码处理响应非常好,可以改进。
谁能帮我?非常感谢你,祝你有个美好的一天!
就像你想要使用它的组件一样
import { OnInit, Component } from '@angular/core'
export class Component implements OnInit {
constructor(private authService: AuthService){}
ngOnInit() {
this.authService.login(param1, param2).subscribe(result => {}, err => {});
}
}