Я использую CouchBase Lite 1.3
с Android
более CouchDB 1.6
.
Если я удаляю документ на CouchDB, документ не удаляется в моей локальной базе данных устройства репликации.
Это мой код:
private Database master;
private Manager manager;
public Replication pullmaster;
manager = new Manager(new AndroidContext(c), Manager.DEFAULT_OPTIONS);
master = manager.getDatabase("master");
pullmaster = master.createPullReplication(url);
master.addChangeListener(new Database.ChangeListener() {
@Override
public void changed(Database.ChangeEvent event) {
if (event.isExternal()) {
for (DocumentChange dc : event.getChanges()) {
if (dc.isDeletion()) {
Document doc = event.getSource().getDocument(dc.getDocumentId());
try {
doc.purge();
} catch (CouchbaseLiteException e) {
e.printStackTrace();
}
}
}
}
}
});
startReplicators();
И вот я начинаю репликацию
public void startReplicators() {
if (pullmaster != null) {
pullmaster.start();
}
if (pullwork != null) {
pullwork.start();
}
if (pushwork != null) {
pushwork.start();
}
}
Он не работает, я имею в виду, он не удаляет документ, который я удаляю в CouchDb
, ошибок нет.
Я поставил точку останова на этой строке
master.addChangeListener (новый Database.ChangeListener () {....}
Если я создаю документ в CouchDB, вызывается addChangeListener()
, но если я удаляю документ, метод не вызывается.
Любая подсказка о том, что я делаю неправильно?