Я сохраняю идентификатор документа данных профиля пользователя firebase как идентификатор пользователя, теперь я хочу получить текущие зарегистрированные пользовательские данные из коллекции пользователей firebase, используя текущий зарегистрированный идентификатор пользователя, и преобразовать их в объект угловой модели. Я пробовал некоторые методы, но эти методы дают мне ошибки ,
сначала я получаю свой текущий зарегистрированный идентификатор пользователя, используя следующий код
this.afAuth.auth.onAuthStateChanged(user => {
if (user) {
this.selectedid = user.uid;
после того, как я создаю объект User и, наконец, назначаю его данным документа firebase, как показано ниже
getnannies() {
return this.db.collection('nanny').doc(this.selectedid).valueChanges()
as Nanny;
}
(Няня - это тип моей модели)
затем я пытаюсь получить доступ к данным документа, как показано ниже
nanny:Nanny;
this.nanny = this.serviceClass.getnannies();
console.log(this.nanny.name);
но этот метод дает мне ошибки, и я хочу знать, как это сделать. мой полный код прилагается ниже
это мой сервисный файл
export class GetNannyDetailsService {
selectedid: string;
constructor(private db: AngularFirestore, private afAuth: AngularFireAuth,
private router: Router) {
}
parseNanny() {
this.afAuth.auth.onAuthStateChanged(user => {
if (user) {
this.selectedid = user.uid;}});
}
getnannies() {
return this.db.collection('nanny').doc(this.selectedid).valueChanges()
as Nanny;
}
это мой profile.component.ts
export class ProfileComponent implements OnInit {
pronan:Nanny;
constructor(private profile: GetNannyDetailsService) {
}
ngOnInit() {
this.profile.parseNanny();
this.pronan = this.profile.getnannies();
console.log(this.pronan.name);}
это моя няня модель
export interface Nanny {
email?: string;
password?: string;
nannyId?: string;
name?: string;
address?: string;
number?: string;
gender ?: string;
town?: string;
jobType ?: string;
birthdate?: Date;
hourlyRate?: number;
availability?: string;
bio?: string;
imgurl?: string;
}
и, наконец, на дисплее консоли "undefined", пожалуйста, помогите мне.