2

Я выполнял синхронизацию с локального сервера couchbase до своего приложения для Android и IOS, и он отлично работает для мобильных устройств на сервере и на сервере на мобильный. Затем я попытался вставить документ из веб-приложения JAVA на локальный сервер, и мне это удастся. Но проблема в том, что документ, вставленный java-веб-приложением, не синхронизируется с мобильными приложениями ios/android. Мой Java-код для вставки документа на локальный сервер выглядит следующим образом:Документы, добавленные из java-кода, не синхронизирующиеся с couchbase lite

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")); 
    } 
} 

В этом коде я создал одно ведро, а затем я создал один объект 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); 
     } 

В этом коде я просто создаю один документ и положить значения в нем.

Моей синхронизация код выглядит следующим образом:

Replication pullReplication = database.createPullReplication(syncUrl); 
     Replication pushReplication = database.createPushReplication(syncUrl); 
     pullReplication.setContinuous(true); 
     pushReplication.setContinuous(true); 
     pullReplication.start(); 
     pushReplication.start(); 

Где я делаю Двунаправленную синхронизацию. Я не получаю, где я ошибаюсь, с java code.please помогите мне решить эту проблему

ответ

0

Синхронизирующий шлюз не отслеживает документ, вставленный через Couchbase-Server java sdk, также Не рекомендуется напрямую вставлять данные в синхронизацию -gateway bucket через java-sdk, вы можете использовать тень для ковша для этого.

Если вы хотите вставить данные через веб-приложение, вы можете сделать использование синхронизации шлюза REST API вызывает http://developer.couchbase.com/documentation/mobile/1.1.0/develop/references/sync-gateway/rest-api/index.html

+0

но я видел ссылку, в которой какой ответ я получаю от сервера, дается, но я не нашел никакого кода, как использовать REST API couchbase sync_gateway.can вы можете предоставить мне пример кода? –

+0

следуйте по этой ссылке и перейдите по ссылке http://stackoverflow.com/questions/34200298/androidhow-to-use-couchbase-rest-api-in-android-application/34204010#34204010 –

+0

, поэтому с какой стороны нам нужно вызвать REST API couchbase sync_gateway с веб-сайта или из приложения android/ios? –

0

На момент написания этой статьи, это не представляется возможным использовать SDKs сервера на ведре, используемой синхронизации Шлюз. Это связано с тем, что, когда новая версия документа сохраняется в базе данных Sync Gateway, она проходит через функцию синхронизации для маршрутизации документов на каналы и предоставления пользователям и ролям доступа к каналам. Некоторые из этих метаданных сохраняются в свойстве _sync в документе на Couchbase Server. SDK сервера в настоящее время не знают о системе, основанной на пересмотре, поэтому она обновит поле в документе, не создавая новую ревизию.

Рекомендуемым способом чтения/записи данных шлюза синхронизации из веб-приложения Java является использование шлюза синхронизации REST API.