在我的角应用程序中,我使用AngularFire
访问firebase实时数据库。
我有以下方法来检索某个数据库路径中的实体。
private db: AngularFireDatabase;
public getAll(): Observable<Item[]> {
return this.db.list<Item>('some/db/path').valueChanges();
}
如果我多次调用上面的方法,数据是否会从服务器多次下载,或者firebase客户端第二次使用本地缓存?
如果数据被多次下载,有什么办法可以指示firebase客户端使用本地缓存吗?
Firebase实时数据库客户端会对侦听器进行重复数据删除。这意味着:
this.db.list<Item>('some/db/path').valueChanges();
this.db.list<Item>('some/db/path').valueChanges();
上面的代码最初只下载一次数据,并且每次更改只下载一次delta。
请注意,您可以通过查看浏览器网络面板中的Web Socket流量来自行检查。