【问题标题】:Is it possible for the app to open already with the latest data obtained by firebase?应用程序是否可以使用 firebase 获得的最新数据打开?
【发布时间】:2019-11-27 04:17:23
【问题描述】:

每次我关闭我的应用程序时,它都必须再次从 firebase 加载数据。有没有办法让它在获取最后一个数据的情况下打开?

【问题讨论】:

  • 可以使用sqflite包离线缓存数据。但这将相当复杂,如果数据量很小,甚至没有必要。
  • 显示至少你已经尝试过

标签: firebase firebase-realtime-database flutter dart


【解决方案1】:

如果您启用磁盘持久性,Firebase 客户端会将其看到的所有数据写入本地磁盘缓存。这意味着当您在没有连接的情况下重新启动应用程序时,您之前看到的相同数据可以在您的应用程序上离线使用。

有关详细信息,请参阅 disk persistence 上的 Firebase 文档以及来自 Flutter 的启用它的调用。

【讨论】:

    【解决方案2】:

    您应该多解释一下,以便我们了解您的用例。不管怎样,我会尽量用我理解的来回答。

    您可以使用sqflite 包来缓存数据,即将数据存储到本地存储中。开始使用:https://pub.dev/packages/sqflite

    如果您的数据量很小,这将是相当复杂的,甚至是不必要的。

    如果你有大量不经常变化的数据,那就去吧。

    那么它的工作原理是这样的:

    首先,您将检查 Firestore 中的数据是否已更改。

    案例 1: 如果没有,那么您将显示来自本地 sqflite 数据库的数据。

    案例 2:如果确实发生了变化,那么您将显示来自 Firestore 的数据,同时使用新数据更新您的本地数据库。

    同样,如果您的数据量很小/变化非常频繁,这将是非常多余的。

    【讨论】:

    • @vagnerwilliam Firebase 具有磁盘持久性,因此虽然这是一个有趣的答案,但打开磁盘持久性并收工要容易得多。
    • @Jay 我同意。我应该删除我的答案吗?这样其他人就不会因为我的回答被接受而被误导。
    • 这是一个答案,但不是最佳答案。它可能会给未来的读者提供另一种选择,所以我会离开它。
    猜你喜欢
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    相关资源
    最近更新 更多