2

我正在用 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 扩展程序的一部分作为背景页面运行时,它会断开连接并且永远不会重新连接。

有没有办法强制重新连接和/或无法按预期工作的原因?

4

1 回答 1

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'"

您是否在日志中收到任何权限错误?

(只是一种预感——不知道这是否与连接逻辑有关,但我过去曾遇到过权限问题。)

于 2013-02-09T22:24:37.033 回答