应用程序是不是可以使用 firebase 获得的最新数据打开?
Posted
技术标签:
【中文标题】应用程序是不是可以使用 firebase 获得的最新数据打开?【英文标题】: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
包离线缓存数据。但这将相当复杂,如果数据量很小,甚至没有必要。
显示至少你已经尝试过
【参考方案1】:
如果您启用磁盘持久性,Firebase 客户端会将其看到的所有数据写入本地磁盘缓存。这意味着当您在没有连接的情况下重新启动应用程序时,您之前看到的相同数据可以在您的应用程序上离线使用。
有关详细信息,请参阅 disk persistence 上的 Firebase 文档以及来自 Flutter 的启用它的调用。
【讨论】:
【参考方案2】:您应该多解释一下,以便我们了解您的用例。不管怎样,我会尽量用我理解的来回答。
您可以使用sqflite
包来缓存数据,即将数据存储到本地存储中。开始使用:https://pub.dev/packages/sqflite
如果您的数据量很小,这将是相当复杂的,甚至是不必要的。
如果你有大量不经常变化的数据,那就去吧。
那么它的工作原理是这样的:
首先,您将检查 Firestore 中的数据是否已更改。
案例 1: 如果没有,那么您将显示来自本地 sqflite 数据库的数据。
案例 2:如果确实发生了变化,那么您将显示来自 Firestore 的数据,同时使用新数据更新您的本地数据库。
同样,如果您的数据量很小/变化非常频繁,这将是非常多余的。
【讨论】:
@vagnerwilliam Firebase 具有磁盘持久性,因此虽然这是一个有趣的答案,但打开磁盘持久性并收工要容易得多。 @Jay 我同意。我应该删除我的答案吗?这样其他人就不会因为我的回答被接受而被误导。 这是一个答案,但不是最佳答案。它可能会给未来的读者提供另一种选择,所以我会离开它。以上是关于应用程序是不是可以使用 firebase 获得的最新数据打开?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Firebase 和 Flutter 构建聊天应用程序的最简单方法是啥
从 firebase 读取数据,并在 listview 中填充