【问题标题】:Firestore + Ionic Angularfire Read Count & Cache PersistentFirestore + Ionic Angularfire 读取计数和缓存持久化
【发布时间】:2020-01-30 17:38:49
【问题描述】:

我想使用 Ionic 4 + Firestore 为应用提供离线和实时同步功能。

目标部署到 Native App(iOS、Android)、electron App(Windows 和 Mac)、PWA。

  1. firestore 本地缓存是否在混合应用程序中持久存在? 使用什么类型的存储 Firestore 缓存? 会不会是类似localstorage的东西,会被android/iOS不时/在低存储时删除。

  2. 我正在使用以下代码进行测试并启用了持久性,离线模式工作正常。 但似乎它计算了每次应用启动时读取的所有文档。 例如,我有 100 个文档。

一个。应用首次启动时,它应计为 100 次读取,因为它将所有数据同步到本地缓存。

b.当我第二次启动该应用程序时,假设没有更新任何文档,它不应该计入任何阅读权限吗?

c。因为根据我的监控,每次启动应用程序的读取计数都会增加。

d。是否有可能,例如没有更新文档,但我的代码强制从服务器获取数据然后消耗读取计数?

谢谢。

getChatMessages(groupId) {
    return this.db.collection(`groups/${groupId}/messages`, ref => ref.orderBy('createdAt')).snapshotChanges().pipe(
      map(actions => actions.map(a => {
        const data = a.payload.doc.data();
        const id = a.payload.doc.id;
        return { id, ...data };
      }))
    );
  }

【问题讨论】:

    标签: firebase ionic-framework google-cloud-firestore angularfire


    【解决方案1】:

    我猜你说的是离线data,我想你的问题可以通过文档来回答。

    1.1。混合应用程序中的firestore本地缓存是否持久? 应该是因为该功能附带您应该在混合应用程序中使用的客户端库。 来自this doc:此功能缓存了您的应用正在使用的 Cloud Firestore 数据的副本,因此您的应用可以在设备离线时访问数据。是的,它是本地存储。

    1.2。使用什么类型的存储 Firestore 缓存? 来自this doc:Cloud Firestore 是一个云托管的 NoSQL 数据库。您将数据存储在文档中,其中包含映射到值的字段。

    2. a - 你说:“当应用程序首次启动时,它应该计为 100 读取,因为它会将所有数据同步到本地缓存”,但如上所述,Firestore 只会加载你的应用程序正在使用的数据,所以主要是你的正在查看您的全部数据的一个子集(100 个文档)。
    b-关于您关于假设没有文件修改的声明,无论如何您的应用程序将同步数据,这已经意味着验证请求。在this doc 上写着: Cloud Firestore 客户端库自动管理在线和离线数据访问,并在设备恢复在线时同步本地数据。
    c- 这个说法是正确的,并且指向我之前指出的那句话。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-23
      • 1970-01-01
      • 2018-10-29
      • 2015-01-08
      • 2013-03-21
      相关资源
      最近更新 更多