同步网关未与 Xamarin 中的 Couchbase 服务器同步

Sync gateway is not syncing with Couchbase server in Xamarin

我正在尝试在我的 xamarin 应用程序中将 couchbase 用于在线和离线数据库。 离线部分工作正常,但不同步。

我遵循了本教程: https://docs.couchbase.com/userprofile-couchbase-mobile/sync/userprofile/xamarin/userprofile_sync.html

我已经安装了 couchbase 服务器,我创建了一个名为:userprofile 的存储桶和一个用户,并且我启用了应用程序访问权限和只读管理员角色。 我还安装了同步网关并配置了它, 这是我的配置。json 文件

{
"log": ["*"],
"databases": {
"userprofile": {
  "server": "http://127.0.0.1:8091",
  "bucket": "user-profile",
  "username": "Maria", 
  "password": "123456", 
  "enable_shared_bucket_access": true, 
  "import_docs": true,
  "num_index_replicas": 0, 
  "delta_sync" :{"enabled":true},
  "users": {
  "Maria": { "password": "123456"},
    "GUEST": { "disabled": false, "admin_channels": ["*"] }
  },
  "sync": `function (doc, oldDoc) {
    if (doc.sdk) {
      channel(doc.sdk);
    }
  }`
 }
}
}

并且我使用这个命令来配置同步网关:

C:\Program Files\Couchbase\Sync Gateway\sync_gateway sync-gateway-config-userprofile-walrus.json

我也将同步 url 更改为 ws://10.0.2.2:4984 因为我正在使用 android 模拟器。 但它没有在设备之间同步,有人可以帮我吗?

1) 您如何验证同步是否正常工作(您按照哪些步骤进行测试)?如果您按照说明 here 进行操作,那将不适用于您上面的配置。因为您在配置文件中配置的唯一有效用户是具有凭据 "username" 和 "password" 的用户,并且教程中的步骤指示不同的 username/password。因此,请确保您使用配置文件中的凭据登录您的应用程序并尝试

2) 您表示您有一个 Couchbase 服务器 运行,您已为 Sync Gateway 访问配置了该服务器。但是您的配置文件表明您正在使用 "walrus" 模式(海象模式是一种仅用于 dev/test 目的的内存模式)。换句话说,在海象模式下,您没有指向实际的 couchbase 服务器。

如果你想与后端 Couchbase 服务器同步(你应该这样做),则将配置文件中 "server" 属性 中的 "walrus:" 替换为指向 couchbase服务器。

3) 排除故障的最佳资源是 Sync Gateway 日志。这应该就同步出了什么问题提供足够的提示。 Post 如果上述提示不起作用,您将看到的错误

4) 看看这个 tutorial for relevant background. Probably from this point