Получение данных вложенных коллекций - PullRequest
0 голосов
/ 04 марта 2020

Я делаю свое первое угловое приложение / приложение 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>

Я предполагаю, что в конструкторе мне также нужно инициализировать бои, но я не понимаю, как это сделать. Я пробовал разные способы получения моих данных, но он никогда не собирался.

Спасибо

1 Ответ

1 голос
/ 04 марта 2020

Чтобы запросить вложенную коллекцию, необходимо запросить всю коллекцию, проверяя значения, которые принесут только документы из вложенной коллекции.

Учитывая, что это может показаться запутанным, я искал несколько ссылок для Вы можете проверить, и я мог бы найти хороший учебник, который может помочь вам с вложенными объектами. Я бы порекомендовал вам взглянуть на них, чтобы вы могли получить больше контента и примеров о том, как этого добиться.

Дайте мне знать, помогла ли вам информация!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...