1

我的目标:让https://github.com/couchbaselabs/ToDoLite-iOS与 Couchbase 服务器同步并同步网关,localhost而不是使用默认的演示 URL。

我像这样运行同步网关:bin/sync_gateway -url http://localhost:8091

然后我在示例中唯一更改的是:

-#define kSyncGatewayUrl @"http://demo.mobile.couchbase.com/todolite"
+#define kSyncGatewayUrl @"http://localhost:4984/sync_gateway/"

当我跑步时

Error: Error Domain=CBLHTTP Code=404 "404 not_found" UserInfo=0x7ff11941fb50 {NSURL=http://localhost:4984/sync_gateway/_facebook, NSLocalizedFailureReason=not_found, NSLocalizedDescription=404 not_found}

我该如何解决?

4

2 回答 2

2

我解决了。原因是我在sync_gateway没有启用 Facebook 注册支持的情况下运行。

通常这是在config.json文件中完成的。事实上,这个配置文件一直在 ToDoLite 中提供

sync_gateway使用此配置文件启动至关重要。自述文件实际上说明了这一点,但以一种松散而随意的方式......

cd ToDoLite-iOS
sync_gateway -url http://localhost:8091 sync-gateway-config.json

注意:我假设上面sync_gateway已经可以通过$PATH. 无论如何,这样做是个好主意。

还有,我没注意dbname。所以你需要更换

#define kSyncGatewayUrl @"http://demo.mobile.couchbase.com/todolite"`

#define kSyncGatewayUrl @"http://localhost:4984/todos"

那么,让它工作的完整步骤顺序是什么?:

  1. 如果您想擦除服务器上的所有内容,rm -rf Library/Application\ Support/Couchbase然后重新开始。Homebrew cask 将此设置隐藏在其他难以重置的地方,因此非常推荐手动安装。

  2. 安装 Couchbase 服务器

  3. 如果全新安装,请设置登录凭据;否则只需登录

  4. todos在集群上创建一个具有名称的存储桶(数据库) 。这是dbnameTODOLite 使用的。

  5. 启动同步网关。请务必传入复制 URL 和 JSON 配置文件。 bin/sync_gateway -url http://localhost:8091 sync-gateway-config.json; 保持同步网关运行

  6. 在 TODOLiteAppDelegate.m中,更改kSyncGatewayUrl#define kSyncGatewayUrl @"http://localhost:4984/todos". 注意数据库的名字是必须的!

  7. (可选)通过转到 访问同步网关的管理员界面http://localhost:4985/_admin/db/sync_gateway/sync。您可以在此处设置同步功能。


如果您想知道这些端口号来自哪里,请查看

于 2014-12-20T10:41:23.820 回答
0

默认远程同步 URL 将根据您下载的项目版本(iOS、Android、PhoneGap 和 Motion)在不同的文件中定义。要找到要更改的适当字符串,只需在您的项目中搜索 URL“ http://demo.mobile.couchbase.com/todolite ”并将其替换为新同步网关数据库的 URL。

于 2014-12-20T23:15:37.617 回答