我对模块中CollectionService()
可用的方法有疑问。akita-ng-fire
我创建了一个扩展 CollectionService() 的服务,并使用 syncCollection 来保持 firestore 文档和我的 Web 客户端之间的同步。这是服务定义的样子:
@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
来初始化同步。
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();
}
但是,我看到此同步每分钟会进行约 5 次读取。有没有办法减少这种情况?我觉得这对我来说很昂贵,因为我们将此服务作为核心服务,用于与关键业务文档保持同步。
来自社区的任何建议都会有所帮助