1
我有得到复制功能的问题,为我的本地Couchbase数据库的工作和我的Android应用
private void startSync() {
URL syncUrl;
try {
syncUrl = new URL("http://10.0.2.2:4984/sync_gateway"); // I am testing with the Android emulator
manager = new Manager(new AndroidContext(this), Manager.DEFAULT_OPTIONS);
database = manager.getDatabase("db");
Replication pullReplication = database
.createPullReplication(syncUrl);
pullReplication.setContinuous(true);
pullReplication.addChangeListener(this);
pullReplication.start();
}
catch (MalformedURLException e) {
throw new RuntimeException(e);
}
catch (IOException e) {
e.printStackTrace();
}
catch (CouchbaseLiteException e) {
e.printStackTrace();
}
Query query = database.createAllDocumentsQuery();
query.setAllDocsMode(Query.AllDocsMode.ALL_DOCS);
QueryEnumerator result;
try {
result = query.run();
for (Iterator<QueryRow> it = result; it.hasNext();) {
QueryRow row = it.next();
Log.i("CouchActivity", "Getting document i: " + row.getDocumentId());
}
}
catch (CouchbaseLiteException e) {
e.printStackTrace();
}
}
一次,我已经创建了一个拉复制,我开始查询所有的文件本地数据库,但没有文件返回。
的同步网关我的配置文件如下:
{
"interface": ":4984",
"adminInterface": ":4985",
"log": ["REST"],
"databases": {
"sync_gateway": {
"server": "http://localhost:8091",
"bucket": "stations",
"sync": `function(doc) {channel(doc.channels);}`,
"users": { "GUEST": { "disabled": false, "admin_channels": ["*"] } }
}
}
}
当我键入localhost:4984/sync_gateway,我得到的“
{"committed_update_seq":1,"compact_running":false,"db_name":"sync_gateway","disk_format_version":0,"instance_start_time":1471324911376777,"purge_seq":0,"state":"Online","update_seq":1}"
不知道,如果一个响应问题是与Android方,因为我看到同步网关输出“POST/sync_gateway/_changes”当我运行我的Android代码。任何人都可以解释为什么复制不起作用?
更新 - 我能确认我的设置正确完成。我所遇到的问题与我创建文档的方式有关。我通过管理控制台创建的那些文件没有为了被识别为有效文档而需要的元数据。我通过推送复制通过我的应用填充数据库来填充服务器端数据库。通过POST请求创建文档也可以工作。
你有什么期望在Couchbase精简版的所有文档查询的结果看?来自同步网关的响应表明不存在复制更改(update_seq = 1)。您可以通过REST API在Sync Gateway上添加新文档(请参阅规范中的curl请求示例http://developer.couchbase.com/mobile/swagger/sync-gateway-public/#!/document/post_db)以及然后检查它是否由Couchbase Lite上的所有文档查询返回。 – jamiltz
这些文档都是通过管理控制台添加的。最初的拉不能同步数据库中的三个文档。我会试试这个请求。 – user1927638