ローカルのcouchbaseサーバーからAndroidおよびIOSアプリケーションに同期しましたが、モバイルからサーバー、サーバーからモバイルで正常に機能しています。次に、JAVA Web アプリケーションからローカル サーバーにドキュメントを挿入しようとしましたが、成功しました。しかし問題は、Java Web アプリケーションによって挿入されたドキュメントが ios/android モバイル アプリケーションの両方と同期していないことです。ドキュメントをローカル サーバーに挿入するための私の Java コードは次のとおりです。
public class CouchBase {
public static void main(String args[]) {
Cluster cluster = CouchbaseCluster.create("127.0.0.1");
Bucket bucket = cluster.openBucket("test");
JsonObject user = JsonObject.empty()
.put("name", "amol")
.put("city", "mumbai");
JsonDocument doc = JsonDocument.create("102", user);
bucket.insert(doc);
System.out.println(doc.content().getString("name"));
}
}
このコードでは、1 つのバケットを作成してから、必要な値を保持する 1 つの json オブジェクトを作成し、このオブジェクトを json ドキュメントに渡し、最後にそのドキュメントをバケットに挿入しました。
ドキュメントを作成するためのモバイル側のコード:
Document document = database.getDocument(etId.getText().toString());
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", etName.getText().toString());
map.put("city", etCity.getText().toString());
try {
document.putProperties(map);
} catch (CouchbaseLiteException e) {
Log.e(TAG, "Error putting", e);
}
このコードでは、単純に 1 つのドキュメントを作成し、それに値を入れています。
私の同期コードは次のとおりです。
Replication pullReplication = database.createPullReplication(syncUrl);
Replication pushReplication = database.createPushReplication(syncUrl);
pullReplication.setContinuous(true);
pushReplication.setContinuous(true);
pullReplication.start();
pushReplication.start();
双方向同期を行っている場所。Javaコードのどこが間違っているのかわかりません。この問題を解決するのを手伝ってください