应用程序是不是可以使用 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 iOS 的最有效方法

从 firebase 读取数据,并在 listview 中填充

Firebase 动态链接可以用于通用应用邀请和特定页面邀请以跟踪推荐吗?

Firebase 网络推送通知令牌未获得

Firebase:为什么我两次获得Firebase ID令牌?