Запросы офлайн-данных медленные и, кажется, распространяются - PullRequest
0 голосов
/ 06 ноября 2019

Я использую firebase / firestore

Вот мой сервисный вызов ..

fetchClients(): Observable<Array<Client>> {

        return new Observable<Array<Client>>(observer => {              

            this.authSvc.getAuthClaim().subscribe(authClaim => {
                this.db.collection(this.collectionName, ref => ref.where("companyID", "==", authClaim.companyID))
                    .get()
                    .subscribe((snapshot: QuerySnapshot<any>) => {
                        const clientList = snapshot.docs.reduce((aggClientList, client) => {
                            const clientData = client.data();
                            clientData.clientID = client.id;
                            aggClientList.push(new Client(clientData));

                            return aggClientList;
                        }, []);

                        observer.next(clientList);
                        observer.complete();
                    }, (error) => {
                        observer.error({ error: error, friendlyError: "There was an error fetching the client list" });
                        observer.complete();
                    });
            });

        });

}

Он вызывается каждый раз, когда пользователь переходит на страницу списка клиентов.

В автономном режиме я замечаю больше, если вы переходите на эту страницу несколько раз, это занимает все больше и больше времени каждый раз, когда он распространяет (умножает) запрос.

Как я могу предотвратить "перекрытие" вызовов, если этодаже что происходит? Первая загрузка кажется мгновенной, а последующие - взаимозаменяемыми. Разве извлечение данных из кэшированного хранилища не должно быть почти мгновенным?

Заранее спасибо!

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