我正在尝试使用 Couchbase Sync Gateway 和 Couchbase Lite for iOS 将 Couchbase 存储桶从服务器同步到 iOS 应用程序。
到目前为止,我正在使用 Couchbase 附带的“啤酒样本”示例存储桶。
在我的 Ubuntu 12.04 LTS VM 上,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 可以实际连接到连接器。
第 168 行的 NSLog 给了我这个输出:
[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 报告任何文档?我显然错过了一些东西。我怀疑频道设置不正确。
任何帮助将不胜感激,如果您的回答解决了我的问题,我会接受。