" 我是couchDB新手并尝试使用CouchSync Gateway将数据从CouchDB提取到我的设备。我实现了80%的成功率,10倍,8倍我的数据同步和 我在其他设备上获得了数据,但我可以提高到100%。是他们的任何方式或任何可以帮助我的设置。"
先谢谢了。
以下是我正在使用的代码部分。
private void startLiveQuery(View viewItems) {
if (liveQuery == null) {
liveQuery = viewItems.createQuery().toLiveQuery();
liveQuery.addChangeListener(new LiveQuery.ChangeListener() {
@Override
public void changed(final LiveQuery.ChangeEvent event) {
Log.d("DataChang","true");
Log.d("DataError",event.getError()+"");
runOnUiThread(new Runnable() {
@Override
public void run() {
try{
empAdapter.clear();
for (Iterator<QueryRow> it = event.getRows(); it.hasNext(); ) {
empAdapter.add(it.next());
}
empAdapter.notifyDataSetChanged();
empAdapter.notifyAll();
}catch (Exception e){
e.printStackTrace();
}
tv_datasize.setText("Record Count : "+event.getRows().getCount()+"");
}
});
}
});
liveQuery.start();
}
}
我在initCBLite()
中调用此方法
private void initCBLite() throws Exception {
manager = new Manager(new AndroidContext(getApplicationContext()), Manager.DEFAULT_OPTIONS);
DatabaseOptions options = new DatabaseOptions();
options.setCreate(true);
database = manager.openDatabase(DATABASE, options);
viewItems = database.getView(String.format("%s/%s", designDocName, byDateViewName));
viewItems.setMap(new Mapper() {
@Override
public void map(Map<String, Object> document, Emitter emitter) {
Object bydate = document.get(MyDatabase.EMPLOYEENAME);
if (bydate != null) {
emitter.emit(bydate, document);
}
}
}, "2.0");
initItemListAdapter();
startLiveQuery(viewItems);
startSYNC();
}
我在OnCreate()中调用initCBLite()方法
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cblite_report);
listView = findViewById(R.id.lv_cbliteReport);
tv_datasize = findViewById(R.id.tv_size);
myDatabase = new MyDatabase(CBLiteReport.this);
db = myDatabase.getWritableDatabase();
try {
initCBLite();
} catch (Exception e) {
e.printStackTrace();
}
}
答案 0 :(得分:0)
Couchbase Lite最初是为了与CouchDB同步而构建的,但是大约3年前,Couchbase创建了一个名为Sync Gateway(也是Apache2许可)的项目,这是Couchbase Lite官方支持的后端。 Couchbase Lite的所有测试和质量保证都是针对Sync Gateway完成的。
如果您有使用CouchDB的要求,Couchbase Lite 1.4.x预计会对它起作用,但不适用于开发人员预览中的Couchbase Lite 2.x.
您使用的是哪个版本的Couchbase Lite?