Я использую Ангуляр 8.
Я создал функцию с именем getUserInfo()
в классе обслуживания, которая возвращает информацию о пользователе, использующем облачный сервис Firestore.
Проблема в том, что когда я показываю результат в сервисном классе, он определен и отлично работает, но внутри компонента результат не определен.
Я думаю, что знаю, в чем ошибка: когда я вызываю функцию внутри компонента, она возвращает undefined
, потому что функции требуется некоторое время для извлечения данных из базы данных, но я не знаю, как это исправить или что использовать вместо?
RxJS исправляет это?
Я уже пробовал Router 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();
}
}