是不是;removeEventListener“;(android)关闭Firebase实时数据库连接?
我浏览了所有的文档和许多博客,但没有得到答案 问题是,我的初始免费配额是同时连接到firebase实时数据库的100个连接。这意味着每次有100个用户可以使用我的应用程序。在使用应用程序后,除非并且直到用户没有是不是;removeEventListener“;(android)关闭Firebase实时数据库连接?,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我浏览了所有的文档和许多博客,但没有得到答案 问题是,我的初始免费配额是同时连接到firebase实时数据库的100个连接。这意味着每次有100个用户可以使用我的应用程序。在使用应用程序后,除非并且直到用户没有销毁应用程序,连接仍然对该用户开放,因此同时没有其他用户可以访问 因此,我的问题是,如果我从数据库引用中删除侦听器,这是否也会关闭连接 ValueEventListener listener = null; DatabaseRefference ref =FirebaseDatabas
销毁应用程序,连接仍然对该用户开放,因此同时没有其他用户可以访问
因此,我的问题是,如果我从数据库引用中删除侦听器,这是否也会关闭连接
ValueEventListener listener = null;
DatabaseRefference ref =FirebaseDatabase.getInstance().getRefference("user");
listener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
ref.removeEventListener(listener);
//----Doing Stuffs
}
}
ref.addListenerForSingleValueEvent(listener);
有了这一点,我想实现的是,当User1获得他的搜索结果时,他/她将不再持有连接
,通过这种方式,另一个用户可以进入数据库。Firebase自动管理连接。下文对此进行了解释:
在Android上,Firebase自动管理连接状态以减少
带宽和电池使用。当客户端没有活动侦听器时,没有
挂起写入或onDisconnect操作,并且未显式
通过goOffline方法断开连接,Firebase关闭连接
60秒不活动后
还请注意,当使用addListenerForSingleValueEvent()
添加侦听器时,它会在运行onDataChange()
后自动删除。您不需要像在发布的代码中那样调用removeEventListenter()
。以下章节对此进行了描述:
读取数据一次
在某些情况下,您可能希望调用回调一次,然后再调用
立即删除,例如在初始化您要删除的UI元素时
不要期望改变。你可以使用
addListenerForSingleValueEvent()方法来简化此场景:它
触发一次,然后不再触发
您可以在伪位置使用侦听器进行更改/.info/connected
。请注意,这确实算作正常的“活动”侦听器,并且不会禁止自动断开连接处理
获取连接状态管理的可视性的另一种方法是启用调试日志。谢谢,伙计。我对此感到困惑。使用实时数据库、android jetpack组件和mvvm架构是一件非常麻烦的事情。