Я могу получить поток данных как наблюдаемый из firestore и отобразить эти данные. Однако я не могу найти способ получить доступ к этим данным, чтобы что-то с ними сделать. Это приятно, поскольку данные обновляются автоматически, но я не вижу способа получить доступ к данным в наблюдаемых результатах.
Например, я получаю поток данных через эту функцию в службу.
Функция:
this.projectList = this.FirebaseService.getCollection('projects', 'creatorId', this.userData.uid);
Служба:
getCollection( collection, paramName, paramValue ) {
return this.afs.collection( collection, ref => ref.where( paramName, '==', paramValue )).valueChanges();
}
Возвращенная коллекция может отображаться в списке или использоваться в раскрывающемся списке, как показано ниже.
<mat-form-field class="w-80-p ml-10-p mt-20">
<mat-label>Select a version to see the details</mat-label>
<mat-select (selectionChange)="onVersionSelected()"
[(ngModel)]="currentProject.currentVersionId">
<mat-option *ngFor="let version of (currentProject['versions'] | async); index as i" [value]="version.uid">
{{i+1}} - {{version.name}}
</mat-option>
</mat-select>
</mat-form-field>
Функция than обрабатывает наблюдаемые данные:
onVersionSelected(): void
{
this.currentProject.versions.forEach((thisVer, index) => {
if (thisVer.id == this.currentProject.currentVersionId){ this.currentVersion=thisVer; }
});
}
Проблема в том, что, используя for l oop, я все равно получаю наблюдаемые, а не фактические данные в массиве . Как мне получить доступ к этим данным?