首页 > 解决方案 > 关闭应用后继续在 Android 上收听 Firestore 更新

问题描述

目前我已经编写了自定义 LiveData 类,它在被观察的同时将快照监听器添加到文档引用中,从而提供了更新 UI 的简单方法。我想在应用关闭后继续收听同一个文档,并在通知中显示更新。

什么是这样做的好方法?我对服务等方面的经验很少,但如果我理解正确,我应该使用 WorkManager 或前台服务。是否有允许对 UI 和背景使用相同侦听器的解决方案?

大多数类似问题的答案都建议使用 FCM + Cloud Functions 来发送更新,但出于我的目的,我希望获得持续的通知,而且我也遇到过云功能的延迟,所以我想避免这种方式。

标签: androidkotlingoogle-cloud-firestoreandroid-workmanager

解决方案


如今,您希望它的工作方式已经不可能了。

当您的应用程序以 Android 为后台时,操作系统会随着时间的推移减少其资源使用量。这意味着您不能依赖 Firestore 的常用机制来接收来自服务器的更新,即使在后台服务中也是如此。

将更新传递到在前台不活动的应用程序的惯用方法是(如您所见)从服务器或 Cloud Functions 向该应用程序发送 FCM 消息。如果您在完成这项工作时遇到问题,如果您发布最小的、完整的/独立的代码,我们将能够更好地提供帮助,我们可以使用这些代码重现您遇到的问题。


推荐阅读