Ionic4 Firebase Слишком долгая загрузка данных - PullRequest
0 голосов
/ 05 января 2020

Я создал чат-приложение ioni c с базой данных Firebase в реальном времени. Однако, когда я пытаюсь загрузить всех пользователей (на данный момент около 150) для страницы «Добавить нового пользователя», загрузка всех моих данных занимает слишком много времени. Ниже приведены мои файлы:

all-users.page. html

image

all-users.page.ts

ionViewDidEnter() {
    this.showLoading();
    this.accountsInfoResSub = this.getData.getUsers().snapshotChanges().subscribe((accountsInfoRes) => {
        let acc = accountsInfoRes.filter((c: any) => {
        if (c.key == null && c.key == undefined && c.payload.val() == null) return false;
        if (c.payload.val().fullName == '' || c.payload.val().fullName == ' ' || c.payload.val().fullName == undefined) return false;
        if (c.payload.val().publicVisibility == false) return false;
        return true;
        });
        this.accounts = acc.map((c: any) => {
        return { key: c.key, ...c.payload.val() }
        });
        console.log(this.accounts);
    });
}

user-filter.pipe.ts

export class UserFilterPipe implements PipeTransform {
  constructor(public afAuth: AngularFireAuth) {
  }
  transform(accounts: any, term?: any): any {
    if (!accounts) {
      return;
    } else if (!term) {
      console.log(this.afAuth.auth.currentUser.uid);
      return accounts.filter((account) => account.uid != this.afAuth.auth.currentUser.uid);
    } else {
      term = term.toLowerCase();
      return accounts.filter((account) => (account.uid != this.afAuth.auth.currentUser.uid) && account.fullName.toLowerCase().indexOf(term) > -1);
    }
  }
}

Есть идеи, что я здесь не так делаю. У меня есть все мои пользователи в списке, но загрузка 150 записей занимает около 5-10 секунд.

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