Как получить одно поле каждого документа коллекции на Firestore? - PullRequest
0 голосов
/ 08 июля 2019

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

this.af.collection('objects').valueChanges().subscribe(data => {        
  this.listTitles.push(data.title)
});

Ответы [ 2 ]

0 голосов
/ 08 июля 2019

Просто отобразите результат и используйте async в вашем шаблоне

class YourComponent{
  listTitles:Observable<String>;

  constructor(){
    this.listTitles = this.af.collection('objects').valueChanges().pipe(
      map(objs => objs.map(obj => obj.title))
    )
  }
}

И в вашем шаблоне:

<ng-container *ngFor="let item of listTitles | async">
 <!-- have fun -->
</ng-container>
0 голосов
/ 08 июля 2019

.subscribe не будет работать в вашем случае, возможно, вам нужно разделить код следующим образом,

this.objectCollectionRef = this.af.collection('objects');
this.objectCollection = this.objectCollectionRef.valueChanges();


for(let data of this.objectCollection){
   this.listTitles.push(data.title)
}

Надеюсь, это поможет!

...