1

我目前正在使用 CouchbaseLite 和 Android 应用程序,我刚刚开始使用复制功能同步到 couchdb 数据库(我是新手)。

这是我遵循此处列出的所有步骤的问题

我的 Replication 对象向我发送了一个空闲状态。但是我指向的特定 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;
        }
    });

请帮忙!

4

1 回答 1

1

您使用连续复制。

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

在这种情况下,拥有Idle状态很好。

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

观察和监控复制

于 2015-05-06T08:27:08.540 回答