Firebase在cordova暂停时断开连接

时间:2015-12-02 21:56:42

标签: javascript cordova firebase

我的应用程序的另一个主要问题是,除非应用程序暂停,否则大约50%的启动没有Firebase连接。所以我会:

  1. 启动应用以不加载任何数据
  2. 暂停它以加载当前页面上的数据
  3. 恢复它以查看数据。
  4. 每次需要发送或接收数据时重复步骤2和3
  5. 代码:

      var onPause = function(){console.log("paused");}
      var onResume = function(){console.log("resumed");}
      document.addEventListener("pause", onPause, false);
      document.addEventListener("resume", onResume, false);
    
      var connectionRef = new Firebase(FB + "/.info/connected");
      connectionRef.on("value", function(snap){
        if(snap.val() == true){
          console.log("connected       -------[]------");
        } else {
          console.log("not connected   --------[            ]------------");
        }
      });
    

    日志:

    resumed
    not connected   --------[            ]------------
    paused
    connected       -------[]------
    resumed
    not connected   --------[            ]------------
    paused
    connected       -------[]------
    

    它工作一半的原因是因为它也以相反的方式工作,我认为这是预期的方式。有什么方法可以防止它断开连接吗?或者强制它在简历上连接?

1 个答案:

答案 0 :(得分:0)

我找到了问题的原因 - 这是一个名为phonegap-plugin-push的插件。当它注册GCM时,它会导致Firebase脱机(如果暂停则联机)。

我仍然没有找到真正的解决方案,但作为一个黑客修复,我有一个注册GCM的计时器,所以数据可以在断开连接之前加载。之后,它依赖于用户长时间不使用该应用程序,因此可以暂停以定期同步。