*带有查询集合的 ngIf Firestore / angularfire2
*ngIf Firestore with Querying Collections / angularfire2
我正在使用 Firestore,我需要按 publicado
过滤我的数据并按 fechaCreacion
对它们进行排序。然后我试了这个:this.afs.collection ('avisos', ref => ref.where ('publicado', '==', true) .orderBy ('fechaCreacion', 'desc')).valueChanges()
但根据文档,Firestore 不允许这样做。然后我就只剩下订单了:this.afs.collection ('avisos', ref => ref.orderBy('fechaCreacion', 'desc')). valueChanges()
并且我正在尝试使用 *ngIf
来仅显示 publicado = true
<div *ngFor="let aviso of avisos | async as aviso" class="col-xl-2 col-lg-3 col-md-4 col-sm-6 col-6 my-1 px-1">
<div *ngIf="aviso.publicado">
<h6>{{ aviso.titulo }}</h6>
<p>{{ aviso.descripcion }}</p>
</div>
</div>
部分地,我解决了问题,但我还有这些差距。我该如何解决?
像这样在打字稿中过滤数据:
this.avisos = this.afs
.collection('avisos', ref => ref.orderBy('fechaCreacion', 'desc'))
.valueChanges()
.map(data => data.filter(d => d.publicado));
或在您的查询中通过 Firestore 进行过滤(首选方式):
this.avisos = this.afs
.collection('avisos', ref => ref
.orderBy('fechaCreacion', 'desc'))
.where('publicado', '==', true)
.valueChanges();
重要的是先排序,再筛选。
我正在使用 Firestore,我需要按 publicado
过滤我的数据并按 fechaCreacion
对它们进行排序。然后我试了这个:this.afs.collection ('avisos', ref => ref.where ('publicado', '==', true) .orderBy ('fechaCreacion', 'desc')).valueChanges()
但根据文档,Firestore 不允许这样做。然后我就只剩下订单了:this.afs.collection ('avisos', ref => ref.orderBy('fechaCreacion', 'desc')). valueChanges()
并且我正在尝试使用 *ngIf
来仅显示 publicado = true
<div *ngFor="let aviso of avisos | async as aviso" class="col-xl-2 col-lg-3 col-md-4 col-sm-6 col-6 my-1 px-1">
<div *ngIf="aviso.publicado">
<h6>{{ aviso.titulo }}</h6>
<p>{{ aviso.descripcion }}</p>
</div>
</div>
部分地,我解决了问题,但我还有这些差距。我该如何解决?
像这样在打字稿中过滤数据:
this.avisos = this.afs
.collection('avisos', ref => ref.orderBy('fechaCreacion', 'desc'))
.valueChanges()
.map(data => data.filter(d => d.publicado));
或在您的查询中通过 Firestore 进行过滤(首选方式):
this.avisos = this.afs
.collection('avisos', ref => ref
.orderBy('fechaCreacion', 'desc'))
.where('publicado', '==', true)
.valueChanges();
重要的是先排序,再筛选。