#firebase #ionic-framework #google-cloud-firestore #ionic4 #algolia
#firebase #ionic-framework #google-облако-firestore #ionic4 #algolia
Вопрос:
В настоящее время я использую Firestore для хранения пользовательских данных и зеркально отображаю их в Algolia для функций поиска. У меня есть следующий HTML-код, отображающий все данные в моем индексе Algolia:
<ais-instantsearch [config] = "searchConfig">
<ais-search-box (change)="searchChanged($event)"></ais-search-box>
<ais-hits *ngIf="showResults">
<ng-template let-hits="hits">
<ion-list>
<ion-item *ngFor="let hit of hits" [routerLink]="['/tabs/home/details', hit.objectId]">
<ais-highlight attribute="title" [hit]="hit"></ais-highlight>
</ion-item>
</ion-list>
</ng-template>
</ais-hits>
</ais-instantsearch>
Но проблема в том, что после того, как я создаю новую запись и добавляю ее в свою базу данных Firestore (которую Algolia затем автоматически отражает), она не обновляется в приведенном выше HTML. Если я ищу его в окне поиска, новая запись отображается нормально, однако она не отображается в моем списке записей данных, отображаемых на странице.
Я попробовал функцию ionic refresh (как показано ниже) и попытался добавить к ней location.reload(), но это возвращает меня к индексной странице моего приложения, а не к текущей. Есть идеи, как перезагрузить мой список, чтобы отразить последние изменения в моей базе данных Algolia?
Вот TS:
doRefresh(event) {
console.log('Begin async operation');
setTimeout(() => {
console.log('Async operation has ended');
this.changeRef.detectChanges();
event.target.complete();
}, 2000);
}
showResults = true;
Комментарии:
1. как вы получаете массив обращений?
2. ais-hits встроен в Algolia instantsearch и извлекается из базы данных