У меня есть категории и подкатегории, использующие кнопки сегмента.
Я начинаю пользоваться 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>