У меня проблема с некоторой базовой логикой. У меня есть структура данных пользователя с полем команды и другие (UID электронной почты и т. Д.). Кроме того, у меня есть структура данных команды с именем, описанием и массивом пользователей в моем пожарном депо.
То, что я пытаюсь сделать, это в начале приложения получить идентификатор пользователя от пользователя, затем получить команду и затем получить профили пользователей членов группы. Я написал следующий код:
ngAfterViewInit() {
this.userRef.valueChanges().pipe(map( (data) => {
console.log(data);
this.teamRef = this.afs.doc<Team>(`teams/${data.teams[0]}`);
console.log(this.teamRef);
console.log('init');
this.getTeam();
}));
}
private getTeam(): void {
this.teamRef.valueChanges().pipe(map( (teamData: Team) => {
this.team = teamData;
console.log('team');
this.getMembers();
}));
}
private getMembers(): void {
console.log('members init');
this.team.members.forEach((value) => {
this.afs.doc<User>(`users/${value}`).valueChanges().pipe(map( (data: User) => {
this.teamMembers.push(data);
}));
});
console.log('members:');
console.log(this.teamMembers);
}
Мой пользовательский интерфейс выглядит так:
export interface User {
email: string;
uid: string;
photoURL?: string;
displayName?: string;
teams?: string[]; // acutally only 1 team - field contains team doc id
}
Любой интерфейс моей команды:
export interface Team {
name: string;
description?: string;
admin?: string; // = creator - first user
members?: string[]; // array of users UIDs.
boards?: string[]; // array of board docs id.
}
данные в базе данных firesotre верны ...
Я не знаю, что я делаю не так. Я не получаю никаких данных, даже если действия вызываются на хуке onInit
Пожалуйста, помогите