Couchbase:将数据与条件同步

Couchbase:将数据与条件同步,couchbase,couchbase-lite,couchbase-sync-gateway,Couchbase,Couchbase Lite,Couchbase Sync Gateway,我正在构建聊天应用程序,移动应用程序用户可以在其设备上保存数据。我们尝试只将与用户相关的数据从服务器同步到客户端(couchbase server到couchbase mobile)。但使用swift从移动设备将所有存储桶从服务器存储到移动设备内部数据库。我的同步json是 { "interface": "192.168.0.68:4984", "adminInterface": "192.168.0.68:4985", "pretty": true, "log": ["*"],

我正在构建聊天应用程序,移动应用程序用户可以在其设备上保存数据。我们尝试只将与用户相关的数据从服务器同步到客户端(couchbase server到couchbase mobile)。但使用swift从移动设备将所有存储桶从服务器存储到移动设备内部数据库。我的同步json是

{
  "interface": "192.168.0.68:4984",
  "adminInterface": "192.168.0.68:4985",
  "pretty": true,
  "log": ["*"],
  "databases": {
    "db": {
        "server": "http://192.168.0.68:8091",
        "bucket": "travel-sample",

        "username":"himanshu",
        "password":"123456",
        "users": {
            "himanshu": {
              "password": "123456",
              "admin_channels": [
                "*"
              ]
            }
          },
        "sync":`
            function (doc) {
                console.log("doc=================================================================>")
                channel (doc.channels);
            }
        `   
    }
}}

服务器可能只向移动设备发送相关数据以进行同步。

是的,您应该使用来路由正确的数据,以便设备能够同步。作为同步功能的一部分,例如,如果您将数据路由到“移动通道”,并在replicator上设置此通道,或者为只能访问此频道的移动用户设置身份验证,则您将只能获取特定数据。

这可以通过为每个用户使用正确的频道配置来实现,以定义访问权限并限制用户

同步功能允许用户根据文档内容访问频道

在这种情况下,当您创建文档时,其属性应指示特定用户已创建/编辑,并基于此,启动同步功能以继续复制

根据给定用户感兴趣的文档类型创建一个标签数组,以便在移动设备上进行复制,并将其传递到同步功能中

{ 
  "tags" : [
    "fashion",
    "outing",
    "shopping"
   ]
}
和同步功能将类似于

function(doc) {
  channel(doc.tags);
}
在客户端上,通过使用内置的复制API同步相关用户内容,该API设置用户的主题兴趣以获取相关数据。然后,复制器将与来自通道的数据交互。按照Objective-C代码创建拉复制

CBLReplication *pull = [database createPullReplication: url];
pull.channels = @[@"outing",@"shopping"];
[pull start];
如果我们没有设置特定的通道,那么可能存在的所有数据都将从同步网关中下拉