我正在尝试使用Couchbase Sync Gateway和适用于iOS的Couchbase Lite将Couchbase存储桶从服务器同步到iOS应用。
到目前为止,我正在使用Couchbase附带的“啤酒样本”示例桶。
在我的Ubuntu 12.04 LTS VM上,使用此配置文件启动Couchbase Sync Gateway:
{
"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报告任何文档?我显然错过了一些东西。我怀疑频道设置不正确。
任何帮助将不胜感激,如果您的答案解决了我的问题,我会接受它。
答案 0 :(得分:1)
因为这是从我们的社区门户网站重新发布的,所以我将在这里结束这个问题并重新发布回复帖子,并且应该在我们的社区门户网站上继续提问。
根据您对问题和配置的描述,您仍然需要配置同步网关,让它知道需要同步的现有Couchbase服务器存储桶。
这是我们的Beta 2之后添加的最新功能;我们目前正在处理文档,该文档可在此处过渡:https://github.com/couchbase/sync_gateway/wiki/Bucket-Shadowing