如何使用FireStore按参数传递字段

时间:2019-01-16 19:27:43

标签: angular firebase ionic-framework google-cloud-firestore

我使用segment -buttons具有类别和子类别。 我开始使用Firebase FireStore并仍在学习,参数有问题。

我想:通过单击任何类别“ todos”; “节日”; “ cultura”,仅显示每个类别的信息。 我设法做到了,但是我需要为每个类别创建一个函数并使用“ WHERE”进行过滤。 但是,我想知道我如何只能具有“一个”功能,并传递每个类别参数,因此我不会在设计中填充太多代码。 我以前已经使用SQLite做到了这一点,但是语法不一样。预先谢谢你。

我的服务:

getDocuments(collectionObj: string): Promise<any> {
return new Promise((resolve, reject) => {
  this._DB.collection(collectionObj).where("nom_subcategoria", "==", 
"Festa")  //  <---  HERE "FESTA"  "CULTURA"  "TODOS".
    .get()
    .then((querySnapshot) => {


      let obj: any = [];

      querySnapshot
        .forEach((doc: any) => {
          obj.push({
            id: doc.id,
            nom_produto: doc.data().nom_produto,
            nom_subcategoria: doc.data().nom_subcategoria,
            nom_endereco: doc.data().nom_endereco,
            data_produto: doc.data().data_produto,
            dia_produto: doc.data().dia_produto,
            val_produto: doc.data().val_produto
          });
        });

      resolve(obj);
    })
    .catch((error: any) => {
      reject(error);
    });
});
}

和我的Home.ts

retrieveCollectionbyFesta(): void {

this._DB.getDocuments(this._COLL)
  .then((data) => {

    if (data.length === 0) {
      this.generateCollectionAndDocument();
    }

    else {
      this.locations = data;
    }
  })
  .catch();
 }

我的HTML

  <ion-item class="itemsegment" no-padding>

      <ion-segment mode="md" [(ngModel)]="Menu">

        <font class="titlefont"> Agenda Cultural </font>
        <ion-segment-button value="Todosagendacultural" (click)="retrieveCollection()" class="todos-button">
          Todos
        </ion-segment-button>

        <ion-segment-button value="Festas" class="todos-button" (click)="retrieveCollectionbyFesta()">
          Festas
        </ion-segment-button>
        <ion-segment-button value="Cultura" class="todos-button">
          Cultura
        </ion-segment-button>
        <ion-segment-button value="Eventos" class="todos-button">
          Eventos
        </ion-segment-button>
      </ion-segment>
    </ion-item>

1 个答案:

答案 0 :(得分:0)

3个基本要素(节日,文化,待办事项)和3个功能的getDocuments(是正确的)是什么?