当前位置: 首页 > 知识库问答 >
问题:

Firebase在android上的高后台数据使用率

邢杰
2023-03-14

我正在将firebase用于学校仪表板应用程序。该应用程序是使用android构建的。它通过google凭据登录firebase。firebase上已启用磁盘持久性。应用程序不使用其他服务或连接。内部版本中设置的Firebase版本为“com”。firebase:firebase客户端android:2.4.0'

我打开了应用程序-它登录并获取数据-然后将其放在后台。数据使用如下所示-

前台数据使用量稳定在-38.87kb

后台数据使用量每隔几分钟就会不断增加-2.53kb、2.94kb、11.49kb、11.9kb、12.18kb、12.59kb、13.90kb、67kb、92kb。它每分钟消耗大约1.5kb的数据。

我已经确保所有Firebase侦听器在暂停时断开连接。为什么应用程序后台数据使用量会随着时间的推移不断增加?

共有3个答案

贺佑运
2023-03-14

我为减少数据使用所做的是创建一个服务,该服务包含何时需要Firebase在线的引用计数状态,并根据该状态使用goOnline()/goOffline():

class OnlineTracker {
   void onlineNeeded(); //Increase reference count
   void releaseOnlineNeeded(); //Decrease reference count
}

当您需要执行要求Firebase联机的操作时,您可以执行以下操作:

try {
    OnlineTracker.onlineNeeded();
    ...
    Firebase operations that need online status
    ...
} finally {
    OnlineTracker.releaseOnline()
}

这样,当OnlineTracker具有引用计数时

为了防止过多的切换,您还可以在离线时延迟并等待一段时间,看看是否需要在很短的时间内在线所需的状态。

查看此要点以获取完整的真实代码

白弘伟
2023-03-14

我刚刚在Firebase类上找到了两个方法-goOffline()和goOnline(),它们可能会帮助我减少后台数据的使用。我将在onPause和onResume中尝试应用程序中的所有活动。

宰父子安
2023-03-14

Firebase客户端保持对其服务器的网络连接开放。作为保持此连接的一部分,客户端和服务器偶尔会交换保持活动状态的消息。这些可能会使用一些内存,这些内存应该(大部分)通过垃圾回收机制回收。

顺便说一句,您可能想升级到适用于Android的FirebaseSDK的最新版本。它现在是2.5.2版。

 类似资料:
  • 任何帮助都将得到高度赞赏。求求你了。

  • 我正在尝试执行某些操作,例如创建一个表,并在应用程序的初始启动时插入720行,这需要一些时间,所以我决定在后台运行它。请参见下面的代码, 主要活动。Java语言 当我运行它时,它显示logcat中的以下错误, 请帮忙! 仅供参考:整个Logcat

  • 我有一个从服务器输出的示例,用于向应用程序推送通知,如下所示:

  • 问题内容: 我在用Firebase的数据制作片段时遇到问题。我希望应用程序在单击按钮以从一个片段更改为片段后显示,但是它确实更改了所显示的片段,但未显示任何内容。 我知道有很多这样的问题,但是我似乎找不到正确的解决方案。 我已经制作了Firebase RecyclerView所需的所有内容,并且还尝试将其构建在活动而不是片段中,并且确实可以,但是不能与片段一起使用。我试图初始化onCreateVi

  • 我是Android的新手。我想在android中创建后台服务来监听在FireStore中创建的新文档。我已经准备好了所有的代码,但是服务一次又一次地启动。 > 你能告诉我该怎么做才能开始服务一次吗。每当我打开应用程序时,它就会显示>>listener附加在控制台中。我希望它只执行一次,并保持它在后台运行。 FireStoreActivityListener.java signup.java