在不打开应用程序的情况下从 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 数据库中检索数据 [重复]
SwiftUI 如何在不使用 List 的情况下从 @ObservedObject ViewModel 获取 Firebase 数据
在 Android 11 上,如何在不实际点击通知的情况下从通知更新启动 Activity