每次我打开页面时都会加载AngularFire列表

时间:2018-12-22 18:20:16

标签: firebase ionic-framework firebase-realtime-database angularfire2 angularfire2-offline

当我加载列表(例如用户)时,它工作得很好,但是,每次加载此著名页面时,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);

我希望当我打开页面时第一次加载列表,但是当我关闭该页面并稍后返回(在同一会话中)时,它不会重新加载数据,而只是将其作为海报

1 个答案:

答案 0 :(得分:0)

Firebase数据库的JavaScript SDK仅将数据保留在内存中。它不会将数据保存在页面重新加载之间的任何地方。重新加载页面时,前一页的所有内存都会丢失。这意味着必须再次从服务器下载数据。

如果要防止这种重新加载,则必须实现自己的脱机持久性机制。有一个library angularfire-offline实现了磁盘持久性,但是它不是官方的Firebase库,而且我从未对其进行过测试。