我正在使用firebase编写Chrome后台扩展程序。我注意到当Chrome打开时我休眠我的电脑(Win7)时,与firebase的连接断开(正如预期的那样)。但是,当我从休眠状态返回时,它不会自动重新连接,并且我的.on()事件不再触发。
我已经查看了API文档以及有关检测断开连接的StackOverflow问题:Detect if Firebase connection is lost/regained
这是我用来测试连接的一些伪代码:
var myFirebase = new Firebase('https://my.firebaseio.com/'); //replace
setInterval(function() {
myFirebase.child('.info/connected').on('value', function (snap) {
if (snap.val() === true) {
console.log('Connected: ' + (new Date()).toString());
}
else {
console.log('Disconnected: ' + (new Date()).toString());
}
});
}, 5000);
当通过网页运行javascript时,这可以正常工作 - 它连接,然后在我休眠时断开连接,然后在从休眠状态恢复后立即重新连接。
但是,当它作为google扩展程序的一部分作为后台页面运行时,它会断开连接并且永远不会重新连接。
有没有办法强制重新连接和/或为什么这不能按预期工作?
答案 0 :(得分:0)
你的权限看起来像这样吗?
"content_security_policy": "script-src 'self' https://static.firebase.com https://myfirebase.firebaseio.com https://s-ord-nss-1.firebaseio.com https://s-ord-nss-2.firebaseio.com; object-src 'self'"
您是否在日志中收到任何权限错误?
(只是预感 - 不知道这是否与连接逻辑有关,但过去我的权限存在问题。)