在不打开应用程序的情况下从 Firebase 更新应用程序数据

Posted

技术标签:

【中文标题】在不打开应用程序的情况下从 Firebase 更新应用程序数据【英文标题】:Updating application data from Firebase without opening the application 【发布时间】:2016-12-12 16:50:45 【问题描述】:

应用程序的列表视图是否有可能在不打开应用程序的情况下更新 Firebase 中的数据?

我正在开发一个必须离线工作的餐厅应用程序,因此用户不得打开应用程序来获取新菜单,而是必须自动更新(只要用户连接到互联网),即使该应用程序是没有打开。有可能实现吗?

【问题讨论】:

【参考方案1】:

我认为您将更新 DATA 与更新 MENU 混淆了。菜单是一个渲染对象 - 如果您使用列表视图驱动它,当应用程序未运行时它自然不会更新,因为如果列表视图未显示,则没有理由绘制列表视图更新。

但是您绝对可以更新数据,我们在 News Rush 中这样做是为了让用户在离线时访问新数据,如果他们之前在线的话。只需确保启用持久性并运行驱动列表视图的相同查询即可。确保路径/参数相同。持久性将记住该数据,如果用户离线,新菜单仍将在下次启动应用程序时正确显示。

【讨论】:

您所说的在线是指应用正在运行还是手机已连接到互联网?【参考方案2】:

您应该在应用程序之外对其进行更新,但是,您可以启用离线功能,

在 Android 上启用离线功能

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

Firebase 应用在离线时也能很好地工作,而且我们有几项功能要做 体验更好。启用磁盘持久性允许您的应用程序 即使在应用重新启动后也能保持其所有状态。我们提供几种 用于监控存在和连接状态的工具。

保持数据新鲜:

保持数据新鲜

Firebase 实时数据库同步并存储 活跃听众的数据。此外,您可以保持特定的 位置同步。

DatabaseReference scoresRef =
 FirebaseDatabase.getInstance().getReference("scores");
 scoresRef.keepSynced(true);

客户端会自动下载 这些位置的数据并保持同步,即使参考有 没有活跃的听众。您可以使用 以下代码行。

scoresRef.keepSynced(false); 默认情况下,之前同步的 10MB 数据将被缓存。这对于大多数应用程序来说应该足够了。如果 缓存超出其配置的大小,即 Firebase 实时数据库 将清除最近最少使用的数据。保留的数据 同步,不会从缓存中清除。

阅读更多:

Enabling Offline Capabilities on android

【讨论】:

以上是关于在不打开应用程序的情况下从 Firebase 更新应用程序数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在不监听事件的情况下从 firebase 数据库中检索数据 [重复]

如何在不打开的情况下从 CSV 文件中检索数据

SwiftUI 如何在不使用 List 的情况下从 @ObservedObject ViewModel 获取 Firebase 数据

在 Android 11 上,如何在不实际点击通知的情况下从通知更新启动 Activity

在不打开新标签的情况下从本机应用返回 Safari - iOS - Safari

如何在不知道个人资料 ID 的情况下从我的应用打开 LinkedIn 应用?