Как передать поле параметром с помощью FireStore - PullRequest
0 голосов
/ 16 января 2019

У меня есть категории и подкатегории, использующие кнопки сегмента. Я начинаю пользоваться Firebase FireStore и все еще учусь, у меня проблема с параметрами.

Я бы хотел: Нажав на любую категорию, «todos»; «Фест»; «Культура», отображать только информацию для каждой категории. Мне удалось это сделать, однако мне нужно было создать функцию для каждой категории и выполнить фильтрацию с помощью «ГДЕ». Тем не менее, я хотел бы знать, как я могу иметь только «одну» функцию и передавать каждый параметр категории, чтобы я не заполнял свой дизайн слишком большим количеством кодов. Мне уже удалось сделать это раньше с 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 голосов
/ 16 января 2019

si pones el html podré hecharte una mano, asi de primeras entiendo que tienes 3 элемента en la vista (фест, культура, задачи) и очередные клики по функциям getDocuments, правильные?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...