Couchbase:将数据与条件同步
我正在构建聊天应用程序,移动应用程序用户可以在其设备上保存数据。我们尝试只将与用户相关的数据从服务器同步到客户端(couchbase server到couchbase mobile)。但使用swift从移动设备将所有存储桶从服务器存储到移动设备内部数据库。我的同步json是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": ["*"],
{
"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];
如果我们没有设置特定的通道,那么可能存在的所有数据都将从同步网关中下拉