Firebase onDisconnect每20分钟一次?

时间:2017-09-22 09:22:26

标签: firebase firebase-realtime-database

我在后台运行此代码以获取Chrome扩展程序,以监控扩展程序的在线状态:

var amOnline = firebase.database().ref('.info/connected');
amOnline.on('value', function(snap) {
        if (snap.val() === true ) {               
            console.log("connected")               
        }
        else {
            console.log("disconnected")
        }
    });

当我看到控制台时,我看到了这个: 它看起来像连接/断开间隔每20分钟(+/-)

07:57:06.597 background.js:75 connected
08:44:43.261 background.js:99 disconnected
08:44:44.606 background.js:75 connected
09:05:19.879 background.js:99 disconnected
09:05:21.999 background.js:75 connected
09:34:57.091 background.js:99 disconnected
09:34:57.907 background.js:75 connected
09:54:49.555 background.js:99 disconnected
09:54:50.279 background.js:75 connected
10:35:25.933 background.js:99 disconnected
10:35:27.604 background.js:75 connected
10:55:16.865 background.js:99 disconnected

为什么firebase会这样做,我该怎么做才能阻止它呢? 我正在保存在线状态的会话。这些是 - 匿名用户,因此没有身份验证/登录状态。

1 个答案:

答案 0 :(得分:0)

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

https://firebase.google.com/docs/database/android/offline-capabilities

这可能会让您了解为什么它会在网络上发生。