У меня запрос по методу CollectionService()
, доступному в модуле akita-ng-fire
. Я создал сервис, который расширяет CollectionService () и использует syncCollection для поддержания syn c между документом firestore и моим веб-клиентом. Вот как выглядит определение сервиса:
@Injectable({providedIn: 'root'})
@CollectionConfig({path: 'someDoc/:customId/anotherDoc'})
export class MyService extends CollectionService<WorkspaceState> {
constructor(store: WorkspaceStore) {
super(store);
this.store.setHasCache(true, {restartTTL: true});
}
// service methods ......
}
Я использую его в директиве onInit
в моем компоненте для инициализации syn c.
ngOnInit() {
this.sub = this.myService.syncCollection().pipe(
concatMap(_ => this.query.myDoc$.pipe(
tap(d => this.myService.markActive(d.customId)),
tap(d => this.customId = d.customId),
)),
tap(d => this.router.navigate(['somePlace', d. customId])),
).subscribe();
}
Однако я вижу, что этот син c проходит ~ 5 операций чтения каждую минуту. Есть ли способ уменьшить это? Я считаю, что это дорого для меня, потому что у нас есть этот сервис в качестве основного сервиса, который используется для поддержки синхронизации c с критически важным для бизнеса документом.
Любые предложения от сообщества будут полезны