在我的一个服务类中,我尝试执行对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未触发,我也不知道为什么。另外,我认为我的《进行回应》的守则相当完善,可以改进。
有人可以帮助我吗?非常感谢您,祝您愉快!
答案 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;
}