Android firebase on()/addValueEventListener需要多少资源?

Android firebase on()/addValueEventListener需要多少资源?,android,performance,firebase,firebase-realtime-database,Android,Performance,Firebase,Firebase Realtime Database,我看到Firebase网站有很多文档可以帮助我们优化资源的使用,但是,我还没有找到所使用资源的详细示例。 这对我了解如何构建应用程序以及更好地选择性能和成本方面的策略非常有用 以安卓为例 我明白,当我做一件事时: query.addListenerForSingleValueEvent(...); 所有的引用都被“查询”到数据库,因此这是一个查询,但会删除所有对象 如果我这样做: query.addValueEventListener(...); 连接保持打开,但它是否会按时间间隔保持连接?

我看到Firebase网站有很多文档可以帮助我们优化资源的使用,但是,我还没有找到所使用资源的详细示例。 这对我了解如何构建应用程序以及更好地选择性能和成本方面的策略非常有用

以安卓为例

我明白,当我做一件事时:

query.addListenerForSingleValueEvent(...);
所有的引用都被“查询”到数据库,因此这是一个查询,但会删除所有对象

如果我这样做:

query.addValueEventListener(...);
连接保持打开,但它是否会按时间间隔保持连接? 或者在计费方面被认为是单一连接? 在对数据库进行更改后,它会再次查询所有对象吗

一般来说,与使用实时数据库功能侦听引用相比,发出单个请求要重多少、花费多少

也许文档中有一部分解释了这一点,但我没有找到

query.addListenerForSingleValueEvent(...);
“查询的所有引用”都指向数据库,因此这是一个 查询,但取下所有对象

它将侦听一次您正在查询的子对象中的对象,而不是数据库中的所有对象

query.addValueEventListener(...);
连接保持打开,但它是否会继续连接 时间间隔

它没有时间间隔,而是在对数据库进行更改时侦听,假设您更改了数据库中的某些值,这将触发您的
addValueEventListener
。这只会在数据库中的某些值更改时消耗资源,因此使用情况将随数据库使用情况而变化,
addListenerForSingleValue
只需启动一次即可查询您的数据,我们可以保证,与总是监听某些更改以引入应用程序的侦听器相比,它将消耗更少的网络资源

检查此有用链接:

谢谢Gaston,因此这意味着“addListenerForSingleValue”下载一次该子项,并且“addValueEventListener”的数据使用在第一次调用时以及在数据库中更改子项时发生。Being(第一种情况)<(第二种情况)就资源而言,比较没有那么多意义,因为它取决于变化的频率。这是对的?