在Firebase数据库中,我是否需要担心调用FirebaseDatabase.goOffline()?什么时候连接保持活着?

时间:2017-09-30 20:25:38

标签: android firebase firebase-realtime-database

所以我找不到关于FirebaseDatabase.goOffline()使用的任何明确文档,只是一般建议此方法停止与Firebase的连接,从而保存有限的“并发连接”或者您必须为它们付费

但我不确定你的连接何时活着,何时你应该调用goOffline()和goOnline()。例如,我的理解是,像这样调用addValueEventListener()会使您的连接无限期地保持活动,并且可以监听帖子更改:

ValueEventListener postListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        // ...
    }
    // ...
}
mPostReference.addValueEventListener(postListener);

但是,如果您只使用addListenerForSingleValueEvent()(注意)和其他不需要连续打开连接的方法,例如 updateChildren()?我是安全的,我的应用程序不会保持打开的连接,将每次通话超过几秒钟的Firebase计为“并发连接”? (假设互联网连接不错)

1 个答案:

答案 0 :(得分:2)

documentation描述:

  

在Android上,Firebase会自动管理连接状态以减少   带宽和电池使用量。当客户端没有活动的侦听器时,没有   挂起的写入或onDisconnect操作,并不是显式的   通过goOffline方法断开连接,Firebase会关闭连接   60秒后不活动。

addListenerForSingleValueEvent()在获取值后分离侦听器,因此不会作为活动侦听器持久存在。如果使用该方法获取所有数据,则连接将在大约一分钟不活动后关闭。

您可以使用.info/connected处的侦听器监控连接状态。示例代码位于the documentation