Я использую Angular 8.
Я создал функцию с именем getUserInfo()
в классе обслуживания, которая возвращает информацию о пользователе, использующем облачный сервис Firestore.
Проблема заключается в том, чтокогда я показываю результат в классе обслуживания, он определен и работает отлично, но внутри компонента результат не определен.
Мне кажется, я знаю, в чем заключается ошибка: когда я вызываю функцию внутри компонента, он возвращает undefined
, потому что функции требуется некоторое время для извлечения данных из базы данных, но я не знаю, как это исправить или что вместо этого использовать?
Исправляет ли это RxJS?
Я уже пробовал маршрутизатор Resolver, но он тоже не работал.
Это функция, которую я использую в классе обслуживания
getUserInfo() {
this.db.collection('users').doc(`${this.cookie.get("id")}`).ref.get().then(doc => {
return doc.data()
})}
Ниже приведен компонент, в котором я хотел быиспользовать функцию класса обслуживания:
import { Component, OnInit } from '@angular/core';
import { AuthService } from '../auth/auth.service';
@Component({
selector: 'app-super-admin',
templateUrl: './super-admin.component.html',
styleUrls: ['./super-admin.component.css']
})
export class SuperAdminComponent implements OnInit {
user;
constructor(private authService: AuthService) { }
ngOnInit() {
this.user = this.authService.getUserInfo();
}
}