首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AngularFire调整Firestore缓存大小

使用AngularFire调整Firestore缓存大小
EN

Stack Overflow用户
提问于 2021-10-21 18:22:46
回答 2查看 54关注 0票数 3

我正在尝试找出启用Firestore持久性的最佳方法,并使用AngularFire调整缓存大小。

Firebase文档建议我们这样做:

代码语言:javascript
复制
firebase.firestore().settings({
     cacheSizeBytes: firebase.firestore.CACHE_SIZE_UNLIMITED
});

AngularFire没有提到调整这样的设置,但是深入到代码中,你看起来可以像这样传递一个"firebase.firestore.PersistanceSettings“类型的对象:

代码语言:javascript
复制
AngularFirestoreModule.enablePersistence({
      experimentalForceOwningTab: true,
      synchronizeTabs: true,
}),

但是,这是PersistanceSettings类型中仅允许的两个属性。

我尝试在app.module.ts中创建一个构造器,并根据Firebase文档进行操作,但我甚至不确定它是否可以工作。

代码语言:javascript
复制
export class AppModule {
  constructor() {
    firebase.firestore().settings({
      cacheSizeBytes: firebase.firestore.CACHE_SIZE_UNLIMITED,
    });
  }
}

如何在运行时检查缓存大小设置?我做得对吗?

EN

回答 2

Stack Overflow用户

发布于 2021-10-21 19:26:25

CACHE_SIZE_UNLIMITED-1,最好在app.module.ts中设置

代码语言:javascript
复制
const settings: firebase.firestore.Settings = {
  cacheSizeBytes: firebase.firestore.CACHE_SIZE_UNLIMITED
};
firebase.firestore().settings(settings);

似乎没有一种方法可以读取settings... cacheSizeBytes是已知的。

而且,一旦连接成功,也可能无法更改cacheSizeBytes的值。

票数 0
EN

Stack Overflow用户

发布于 2021-10-25 21:09:45

在搜索AngularFire文档时,我找到了与离线存储相关的document。它解释了如何在应用程序中启用文件持久性,还说明了您可以使用fromCache属性测试文档是从缓存中检索还是从Firestore中检索。

若要检查是从服务器还是从缓存接收数据,请在快照事件中使用SnapshotMetadata的fromCache属性。如果fromCache为true,则数据来自缓存,可能已过时或不完整。如果fromCache为false,则数据是完整的,并且是服务器上最新的更新。

至于为Firestore设置缓存大小,似乎唯一的方法就是您一直在尝试的方法,并且它是在Firestore实例properties中设置的变量。以下是与设置cache size和启用persistence相关的文档的完整示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69666978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档