所以我找不到关于FirebaseDatabase.goOffline()使用的任何明确文档,只是一般建议此方法停止与Firebase的连接,从而保存有限的“并发连接”或者您必须为它们付费
但我不确定你的连接何时活着,何时你应该调用goOffline()和goOnline()。例如,我的理解是,像这样调用addValueEventListener()
会使您的连接无限期地保持活动,并且可以监听帖子更改:
ValueEventListener postListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// ...
}
// ...
}
mPostReference.addValueEventListener(postListener);
但是,如果您只使用addListenerForSingleValueEvent()
(注意单)和其他不需要连续打开连接的方法,例如
updateChildren()
?我是安全的,我的应用程序不会保持打开的连接,将每次通话超过几秒钟的Firebase计为“并发连接”? (假设互联网连接不错)
答案 0 :(得分:2)
在Android上,Firebase会自动管理连接状态以减少 带宽和电池使用量。当客户端没有活动的侦听器时,没有 挂起的写入或onDisconnect操作,并不是显式的 通过goOffline方法断开连接,Firebase会关闭连接 60秒后不活动。
addListenerForSingleValueEvent()
在获取值后分离侦听器,因此不会作为活动侦听器持久存在。如果使用该方法获取所有数据,则连接将在大约一分钟不活动后关闭。
您可以使用.info/connected
处的侦听器监控连接状态。示例代码位于the documentation。