是不是;removeEventListener“;(android)关闭Firebase实时数据库连接?

是不是;removeEventListener“;(android)关闭Firebase实时数据库连接?,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我浏览了所有的文档和许多博客,但没有得到答案 问题是,我的初始免费配额是同时连接到firebase实时数据库的100个连接。这意味着每次有100个用户可以使用我的应用程序。在使用应用程序后,除非并且直到用户没有销毁应用程序,连接仍然对该用户开放,因此同时没有其他用户可以访问 因此,我的问题是,如果我从数据库引用中删除侦听器,这是否也会关闭连接 ValueEventListener listener = null; DatabaseRefference ref =FirebaseDatabas

我浏览了所有的文档和许多博客,但没有得到答案

问题是,我的初始免费配额是同时连接到firebase实时数据库的100个连接。这意味着每次有100个用户可以使用我的应用程序。在使用应用程序后,除非并且直到用户没有
销毁
应用程序,
连接仍然对该用户开放,因此同时没有其他用户可以访问

因此,我的问题是,如果我从数据库引用中删除侦听器,这是否也会关闭
连接

 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架构是一件非常麻烦的事情。