【问题标题】:PouchDb not live syncing with CouchDb in Cordova projectPouchDb 在 Cordova 项目中无法与 CouchDb 实时同步
【发布时间】:2015-09-08 08:58:58
【问题描述】:

CORS 已启用且正在工作。

我们有一个 Cordova 应用程序,它在第一次连接到 CouchDB 时同步良好。之后 db.sync() 不起作用。只有当我们使用飞行模式离线和在线时,它才会再次同步一小段时间。

我们有一个 angular.factory,它创建本地 pouch 数据库并设置与我们的远程 couchDB 的同步

(function () {

angular
  .module('IkasApp')
  .factory('pouch', ['$http', ThisFunction]);


function ThisFunction($http) {
    PouchDB.debug.enable('*');
    var db = new PouchDB('test_suite_db');

    var remoteCouch = 'http://estouch.iriscouch.com/_utils/database.html?test_suite_db';



    if (remoteCouch) {
        var opts = {
            live: true
        };
        db.sync(remoteCouch, opts);
    }

    return db;


}
}());

我们能够在我们的 pouchDB (test_suite_db) 中创建和更新文档,但它不能持续实时同步。 正如您所见,很多灵感都来自github。我们正在运行 Pouch 4.0.1。

【问题讨论】:

    标签: angularjs cordova couchdb pouchdb


    【解决方案1】:

    您似乎正在使用同步选项{live: true}。你试过{live: true, retry: true}吗?

    【讨论】:

    • 你好。我们刚刚尝试了 retry:true。它不起作用。我们知道每次 db.changes 发生变化时都会调用我们的 db.sync()。您还有其他建议吗?
    • 你能提供更多关于什么不起作用的细节吗?此外,如果您将事件侦听器附加到 sync(),您可能会获得更多见解,如 API 文档中所示:pouchdb.com/api.html#sync
    【解决方案2】:

    如果您将 retry 设为 false 并使用错误处理程序,那么您至少可以看到错误。

    .on('error', function(err){console.log(JSON.stringify(err));});

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-21
      • 1970-01-01
      • 1970-01-01
      • 2016-11-26
      • 2020-08-02
      相关资源
      最近更新 更多