Как обновить html после обновления данных algolia?

#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 и извлекается из базы данных