我在后台运行此代码以获取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会这样做,我该怎么做才能阻止它呢? 我正在保存在线状态的会话。这些是 - 匿名用户,因此没有身份验证/登录状态。
答案 0 :(得分:0)
我不知道firebase的web api。但在Android上,Firebase会自动管理连接状态,以减少带宽和电池使用量。当客户端没有活动侦听器,没有挂起的写入或onDisconnect操作,并且没有通过goOffline方法明确断开连接时,Firebase会在60秒不活动后关闭连接。
https://firebase.google.com/docs/database/android/offline-capabilities
这可能会让您了解为什么它会在网络上发生。