couchbase lite xamarin 使用同步网关进行拉取复制
couchbase lite xamarin pull replication with sync-gateway
我想拉取带有用户名属性的文档
作为用户 1 的用户 1 就像每个用户的唯一属性及其名称一样。
这是我的复制代码。
private void setupreplication(){
Console.WriteLine ("Setting up replication");
Uri Server = new Uri("http://192.168.1.213:4984/aussie-coins-syncgw/");
var pull = _db.CreatePullReplication (Server);
var push = _db.CreatePushReplication (Server);
pull.Filter = "byUser";
pull.FilterParams = new Dictionary<string, object> { {"type", "user1"} };
pull.Continuous = true;
push.Continuous = true;
pull.Start();
push.Start();
}
这是我设置的过滤器代码
_couchBaseLiteLocal.SetFilter("byUser", (revision, filterParams) =>
{
var typeParam = filterParams["type"].ToString();
return (typeParam != null) && typeParam.Equals("user1");
});
使用上面的代码通用 pull 本身不起作用。
我只是尝试按照文档中的说明进行操作。
我不明白 setfilter 函数如何过滤来自服务器的数据。如果有人帮助理解 setfilter 的工作原理并使上面的代码工作,那就太好了
提前致谢。
pull replications中的filter函数确实可以return你感兴趣的特定文件。但是效率不是很高,filter函数会运行对远程数据库上的所有文件进行过滤每次启动拉复制时确定要拉取哪些。
相反,Sync Gateway 引入了 sync function 的概念,即递增地路由和计算文档的访问控制规则。这样,在开始拉式复制时,Sync Gateway 可以快速直接地 return 用户有权访问的特定文档。
如果需要,您可以 specify individual channels 从 Sync Gateway 进行拉式复制。但要记住的是,Sync Gateway 和 Couchbase Lite 之间的过滤式拉取复制并非基于过滤功能。如果需要,它基于同步功能和基于通道的过滤。
在P2P场景中(两个Couchbase Lite实例之间的复制),使用filter function model。
我想拉取带有用户名属性的文档 作为用户 1 的用户 1 就像每个用户的唯一属性及其名称一样。
这是我的复制代码。
private void setupreplication(){
Console.WriteLine ("Setting up replication");
Uri Server = new Uri("http://192.168.1.213:4984/aussie-coins-syncgw/");
var pull = _db.CreatePullReplication (Server);
var push = _db.CreatePushReplication (Server);
pull.Filter = "byUser";
pull.FilterParams = new Dictionary<string, object> { {"type", "user1"} };
pull.Continuous = true;
push.Continuous = true;
pull.Start();
push.Start();
}
这是我设置的过滤器代码
_couchBaseLiteLocal.SetFilter("byUser", (revision, filterParams) =>
{
var typeParam = filterParams["type"].ToString();
return (typeParam != null) && typeParam.Equals("user1");
});
使用上面的代码通用 pull 本身不起作用。 我只是尝试按照文档中的说明进行操作。
我不明白 setfilter 函数如何过滤来自服务器的数据。如果有人帮助理解 setfilter 的工作原理并使上面的代码工作,那就太好了
提前致谢。
pull replications中的filter函数确实可以return你感兴趣的特定文件。但是效率不是很高,filter函数会运行对远程数据库上的所有文件进行过滤每次启动拉复制时确定要拉取哪些。
相反,Sync Gateway 引入了 sync function 的概念,即递增地路由和计算文档的访问控制规则。这样,在开始拉式复制时,Sync Gateway 可以快速直接地 return 用户有权访问的特定文档。
如果需要,您可以 specify individual channels 从 Sync Gateway 进行拉式复制。但要记住的是,Sync Gateway 和 Couchbase Lite 之间的过滤式拉取复制并非基于过滤功能。如果需要,它基于同步功能和基于通道的过滤。
在P2P场景中(两个Couchbase Lite实例之间的复制),使用filter function model。