AngularFire2, как запросить список в списке - PullRequest
0 голосов
/ 15 февраля 2019

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

station 1
 - project 1, project 3, project 5

station 2
 - project 2, project 6

station 3
 - project 4, project 7, project 8

etc.

Для справки мой HTML-код выглядит следующим образом:

    <ul>
      <li *ngFor="let shop of shops | async">
        {{ shop.StationtName}}
             <div *ngFor="let shopProject of shopProjects | async">
                 {{ shopProject.SKU}}
             </div>
      </li>
    </ul>

Я атаковал эту проблему следующим образом:

this.shopCollection = this.afs.collection('shop', ref => ref.where('station', '==', 'true'))

    this.shops = this.shopCollection.snapshotChanges().pipe(
      map(actions => actions.map(a => {
        const data = a.payload.doc.data() as Shop;
        const id = a.payload.doc.id;
        console.log(data.StationName);

<///////////// I'm trying to use data.StationName in the next query ///////////>

                    this.projectCollection = this.afs.collection('shop', ref => ref.where('stationLocation', '==', data.StationtName)) 
                    this.shopProjects = this.projectCollection.snapshotChanges().pipe(    
                      map(actions => actions.map(a => {
                        const data = a.payload.doc.data() as Prod;
                        const id = a.payload.doc.id;
                        console.log(data.SKU);
                        return { id, ...data };
                      }))
                    );

        return { id, ...data };
      }))

    );

В результате получается список станций с одним и тем же SKU проекта под каждой записью.

Примерно так:

station 1
 - project 8
station 2
 - project 8
station 3 
- project 8
station 4 
- project 8

Я не уверен, что я приближаюсьэто наиболее эффективным способом, любой вклад будет принят хорошо.Заранее спасибо

...