我正在使用 Firebase
并订阅 snapshotChanges 以在我的实时数据库更新时检索更新。
Service A
正在订阅观察者。 Service B
将 100 个项目写入实时数据库,如下所示:
const objs = {'fooA': valueA,'fooB': valueB,... };
const dbRef = firebase.database().ref(`projects/${project}`);
return dbRef.transaction((transaction) => {
return objs;
},undefined,false);
如您所见,objs
可能包含数百个项目。执行事务后,我会在 Service A
中收到其他服务添加到数据库中的每个项目的更新。
因为我使用了一个交易,所以我希望我也只收到 1 个回调,而不是 100 个。目前,我使用延迟计时器来帮助自己,但我更愿意避免这种情况。
this.observer$ = this.db.list(`projects/${project}/`).snapshotChanges()
.pipe(auditTime(200))
.subscribe((data) => {
console.log(data);
});
使用auditItem
输出:
(100) [{…},{…},…]
...
没有 auditItem
的输出:
(0) []
(1) [{…}]
> 0:{payload: Datasnapshot,type: 'value'...
(2) [{…},{…}]
(3) [{…},{…}]
(4) [{…},{…}]
...
知道 API 为我提供了什么吗?