Firebase监听器或Pull-To-Refresh

时间:2018-09-23 19:33:27

标签: javascript reactjs firebase react-native firebase-realtime-database

我正在开发一个向用户显示一些信息的应用程序。该信息每天更改多次(有时每小时更改多次)。

我正在使用Firebase并为此信息设置监听器。

  1. 假设这些监听器将一直有效是否可靠?
  2. 如果应用未关闭(因此永远不会卸载该组件),监听器是否会过期/关闭?
  3. 正在实现一种从上到下刷新的更可靠方式来更新信息。

我担心的情况是侦听器中发生了某些事情,用户然后更新应用程序的唯一方法是关闭它并重新启动以触发新的侦听器。

2 个答案:

答案 0 :(得分:0)

  1. 应用关闭后,列表器将无法工作
  2. 否,如果系统有足够的电池电量或应用未被系统关闭,它将一直在监听。 [当应用程序仍在后台运行时,该应用程序将被android系统屏蔽,以节省电池电量,并且当用户到来时,它会重新启动]
  3. 这取决于应用程序的类型。如果该应用程序是一些股票或聊天之类的东西,那么数据必须实时流式传输,而如果该应用程序显示其他用户的某些帖子(例如在Twitter用户个人资料中),则可以进行刷新

建议:您还应该提供一个重试功能,以检查侦听器的状态是否消失,然后重试[在网络中断的情况下很有帮助],此外,您还应该为用户提供一种刷新机制,因为它可以改善UX;)

答案 1 :(得分:0)

您必须先了解react组件的生命周期,然后才能listener will always be a part of some component and listener will be initialized when some component is initialized into the memory,而且一旦从内存中卸载了该组件,监听器的生命就取决于该组件,因此特定的监听器将不会被调用,因此现在答案你的第一个问题是。

  1. 即使该应用程序尚未关闭,并且您正在不同的屏幕之间导航,也将侦听器置于某个子组件and that component is unmounted from the memory your listener will not work中。

现在是第二个问题,我的第一个答案几乎可以回答。

  1. 因此,正如我在第一个答案中所述,在从内存中卸载该组件之前,除非您关闭应用程序或操作系统由于某种原因but as long as the component keeps mounted into the memory your listener will keep working杀死应用程序,否则侦听器将起作用。 >

  2. 我相信在您的情况下添加拉动刷新更为方便另一个选择是,您可以混合使用导航库When the user focuses on some screen then you can fetch newer data的更改侦听器和焦点侦听器,并且始终这样新数据将显示instead of manual refresh