Я пытаюсь синхронизировать корзину Couchbase с сервера с приложением iOS с помощью Couchbase Sync Gateway и Couchbase Lite для iOS.
Пока я работаю с ведром-образцом для пива, которое поставляется с Couchbase.
На моей виртуальной машине Ubuntu 12.04 LTS шлюз синхронизации Couchbase запускается с помощью этого файла конфигурации:
{
"interface":":4984",
"adminInterface":":4985",
"log":["REST"],
"databases":{
"sync_gateway":{
"server":"http://localhost:8091",
"bucket":"beer-sample",
"sync":`function(doc) {channel(["public"]);}`,
"users": {
"GUEST": {"disabled": false, "admin_channels": ["public"]}
}
}
}
}
Я намерен запустить его, не беспокоясь сначала об аутентификации, поэтому пользователь GUEST.
Я также изменил некоторые примеры, чтобы убедиться, что назначение каналов не зависит от документов, поскольку в сегменте примера нет назначения каналов:
"sync":`function(doc) {channel(["public"]);}`,
Я включил код из https://github.com/couchbaselabs/ToDoLite-iOS/blob/master/TodoLite7/CBLSyncManager.m в мой собственный примерный проект, и после небольших попыток iOS действительно может подключиться к коннектору.
NSLog в строке 168 дает мне следующий вывод:
[1026:60b] SYNCMGR: active=0; status=1; 0/0; (null)
[1026:60b] SYNCMGR: active=1; status=3; 0/0; (null)
[1026:60b] SYNCMGR: active=0; status=2; 0/0; (null)
… И я считаю, что синхронизация (0 документов) прошла успешно.
Почему Couchbase Sync Gateway не передает никаких документов в Couchbase Lite? Я явно что-то упускаю. Я подозреваю, что каналы настроены неправильно.
Любая помощь будет оценена по достоинству, и если ваш ответ решит мою проблему, я приму ее.