我目前在Android应用程序上使用CouchbaseLite,并且刚开始使用复制功能同步到Couchdb数据库(这是我的新手)。

这是我遵循的所有步骤的问题,here

我的复制对象向我发送了空闲状态。但是我指向的特定couchdb数据库中没有数据。我有什么想念的吗?

URL url = new URL("http://192.168.1.100:5984/data/");
            push = database.createPushReplication(url);
            pull = database.createPullReplication(url);
            pull.setContinuous(true);
            push.setContinuous(true);
            BasicAuthenticator authenticator = new BasicAuthenticator("olabode", "couch");
            pull.setAuthenticator(authenticator);
            push.setAuthenticator(authenticator);

            pull.addChangeListener(this);
            push.addChangeListener(this);

            push.setFilter("addStoreNameFilter");
            pull.setFilter("pullCurrentStoreFilter");

            // Start
            push.start();
            pull.start();

database.setFilter("addStoreNameFilter", new ReplicationFilter() {
        @Override
        public boolean filter(SavedRevision savedRevision, Map<String, Object> map) {
            map.put(Dao.STORE_ID, storeId);
            return true;
        }
    });

    database.setFilter("pullCurrentStoreFilter", new ReplicationFilter() {
        @Override
        public boolean filter(SavedRevision savedRevision, Map<String, Object> map) {
            String currentStoreId = (String) map.get(Dao.STORE_ID);
            if (currentStoreId == storeId)
                return true;

            return false;
        }
    });


请帮忙!

最佳答案

您使用连续复制。

pull.setContinuous(true);
push.setContinuous(true);


在这种情况下,具有Idle状态是可以的。


  空闲:表示连续复制已“捕获”并传输了所有文档,但是正在监视源数据库以备将来更改。


Observing and monitoring replications

10-07 19:40
查看更多