当本机应用程序为“时,是否应删除Firebase侦听器?”;背景;?

当本机应用程序为“时,是否应删除Firebase侦听器?”;背景;?,firebase,react-native,firebase-realtime-database,google-cloud-firestore,Firebase,React Native,Firebase Realtime Database,Google Cloud Firestore,在卸载侦听组件时,从Firebase数据库(无论是云Firestore还是实时数据库)中删除侦听器被认为是一种良好的做法 在很多应用程序中,包括我的(React Native app),这种情况可能不会经常发生 例如,当我的用户通过身份验证(登录)时,他们将订阅RTDB和CFS上的多个侦听器。像通知、消息和其他“实时”更新之类的东西,我想让他们看到应用程序范围内的信息——比如说通知“徽章”或“未读消息” 本机应用程序的开发人员将知道,应用程序可以在很长一段时间内保持“后台”。使用auth刷新,用

在卸载侦听组件时,从Firebase数据库(无论是云Firestore还是实时数据库)中删除侦听器被认为是一种良好的做法

在很多应用程序中,包括我的(React Native app),这种情况可能不会经常发生

例如,当我的用户通过身份验证(登录)时,他们将订阅RTDB和CFS上的多个侦听器。像通知、消息和其他“实时”更新之类的东西,我想让他们看到应用程序范围内的信息——比如说通知“徽章”或“未读消息”

本机应用程序的开发人员将知道,应用程序可以在很长一段时间内保持“后台”。使用auth刷新,用户很少会注销我的应用程序。这意味着这些组件从未(或很少)卸载,因此,我认为它们仍然订阅更新


我是否应该添加逻辑,当用户对应用程序进行后台处理时,将这些订阅服务器删除到实时数据中,然后在它们再次进入前台时重新恢复它们?

您所问的主要是意见问题,这与堆栈溢出无关。也就是说,你可能需要花一些时间来理解无限期增加听众的后果

当用户不看你的应用程序时,未删除的侦听器仍然会产生下载其正在侦听的文档更新的费用。这是否可以接受完全取决于你

主机操作系统可能会限制用户在一段时间后看不到的应用程序的网络访问。这是为了用户的利益,因此实施不佳的应用不会消耗过多的网络和电池。发生这种情况时,您不能依靠这些侦听器正常工作。如果您希望侦听器在应用程序不可见时保持活动状态,则需要使用它提供的任何API告诉主机操作系统您想要什么。即使这样,你也没有任何保证,因为操作系统可能只是为了回收资源而杀死一个不可见的应用程序

在您了解给定操作系统上应用程序的行为之后,您必须自己决定何时添加和删除侦听器才有意义