Я делаю свое первое угловое приложение / приложение Firestore, и у меня возникают проблемы с пониманием того, как извлекать данные из вложенных коллекций. Мой путь к базе данных Firestore, из которого я хочу прочитать, находится здесь:
/users/cl0Apvalb6c0w9hltQ8AOTF4go23/Fights/7WqHl5YUKPszkRELXEI2
Таким образом, пользователи - это коллекция, cl0Apvalb6c0w9hltQ8AOTF4go23 - это автоматический идентификатор пользователя, Fights - еще одна коллекция, а 7WqHl5YUKPszkRELXEI2 - это автоматический идентификатор для добавлен бой (бои, потому что это приложение, чтобы забить бои в боевых видах спорта).
Сам бой (7WqHl5YUKPszkRELXEI2) - это данные, такие как finalScore, redFighter, blueFighter и др. c. что я хочу, как я читаю эти данные?
В настоящее время у меня есть служба oAuth, которая аутентифицирует пользователей, а также объявляет пользователя наблюдаемым.
export class AuthService {
user: Observable<User | null>;
fights: Observable<User | null>;
private userid: String
constructor(private afAuth: AngularFireAuth, private afs: AngularFirestore, private router: Router)
{
this.user = this.afAuth.authState.pipe(
switchMap(user => {
if (user) {
return this.afs.doc<User>(`users/${user.uid}`).valueChanges();
} else {
return of(null);
}
})
);
}
Затем в моих HTML для боев, которые я хочу отобразить, у меня есть данные документа пользователя, такие как идентификатор пользователя, так что я знаю, что он в настоящее время читает данные документа пользователя, по крайней мере.
<!-- User logged in -->
<ng-template #authenticated>
<div *ngIf="auth.user | async as user">
<h3>Howdy, {{ user.displayName }}</h3>
<img [src]="user.photoURL">
<p>UID: {{ user.uid }}</p>
<p>{{ user.testfield }}</p>
<p>{{user.what }}</p>
Я предполагаю, что в конструкторе мне также нужно инициализировать бои, но я не понимаю, как это сделать. Я пробовал разные способы получения моих данных, но он никогда не собирался.
Спасибо