代码之家  ›  专栏  ›  技术社区  ›  Paco Zevallos

*带查询集合/angularfire2的ngif firestore

  •  1
  • Paco Zevallos  · 技术社区  · 6 年前

    我正在使用FireStore,我需要按 publicado 然后按排序 fechaCreacion . 然后我试了一下: this.afs.collection ('avisos', ref => ref.where ('publicado', '==', true) .orderBy ('fechaCreacion', 'desc')).valueChanges()

    但据文件记载,消防局不允许这样做。然后我就一个人被命令: 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>
    

    在某种程度上,我解决了这个问题,但我还有这些空白。我怎么解决这个问题? enter image description here

    1 回复  |  直到 6 年前
        1
  •  2
  •   Markus Kollers    6 年前

    按如下方式筛选typescript中的数据:

    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();
    

    首先订购,然后过滤是很重要的。