0

我正在尝试使用 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 报告任何文档?我显然错过了一些东西。我怀疑频道设置不正确。

任何帮助将不胜感激,如果您的回答解决了我的问题,我会接受。

4

1 回答 1

1

由于这是从我们的社区门户重新发布的,因此我将在此处关闭此问题,并重新发布作为回应,并且应该在我们的社区门户上继续提问。

根据您对问题和配置的描述,您仍然需要配置您的同步网关,让它知道有一个现有的 Couchbase 服务器存储桶需要同步。

这是我们的 Beta 2 之后最近添加的功能;我们目前正在编写文档,可在此处临时获取:https ://github.com/couchbase/sync_gateway/wiki/Bucket-Shadowing

继续线程可以在这里找到:http: //www.couchbase.com/communities/q-and-a/sync-couchbase-lite-through-couchbase-sync-gateway-doesn%E2%80%99t-see-any -文档通道问题

于 2014-04-23T16:14:11.823 回答