当我加载列表(例如用户)时,它工作得很好,但是,每次加载此著名页面时,firebase会重新加载整个列表,因此会使用大量数据...
如何在会话期间仅加载一次?
我已经尝试在TS中页面的开头加载一次列表,但是由于HTML中的ngIf,它仍然加载数据...
<ion-col col-12>
<p>Pseudo : {{user.p}}</p>
</ion-col>
this.users = await this.database.list(`G/${this.myUid}/U/`).valueChanges().take(1);
我希望当我打开页面时第一次加载列表,但是当我关闭该页面并稍后返回(在同一会话中)时,它不会重新加载数据,而只是将其作为海报
答案 0 :(得分:0)
Firebase数据库的JavaScript SDK仅将数据保留在内存中。它不会将数据保存在页面重新加载之间的任何地方。重新加载页面时,前一页的所有内存都会丢失。这意味着必须再次从服务器下载数据。
如果要防止这种重新加载,则必须实现自己的脱机持久性机制。有一个library angularfire-offline
实现了磁盘持久性,但是它不是官方的Firebase库,而且我从未对其进行过测试。