我正在尝试在Android设备上设置基于频道的拉复制。我正在使用Grocery-Sync Android客户端推送一些数据并通过我的Android客户端检索(推送和拉动复制)。
以下是来自同步网关文件的数据库配置:
"cb":{
"server":"http://172.17.0.5:8091",
"users": { "GUEST": { "disabled": false, "admin_channels": ["*"] } },
"allow_empty_password": true,
"sync":``function(doc){
if(doc.type == "LatestUpdate"){
console.log("Inside LatestUpdate");
channel(doc.kidId);
}
else{
channel(doc.channels);
}
}
我在推送Grocery-sync应用程序中的数据时设置了名为kidId的自定义属性(暂时硬编码)。 Push复制工作正常。从日志中可以看出,它甚至可以推送到正确的频道:
Doc "afd8c40b-4431-49ab-be08-c87e409ee912" in channels "{2bea2709e58a49329de59c47d98535b}"
现在,当我从我的应用程序中提取数据时,即使我已经明确设置了不同的通道,日志也表明它仍然提取数据。
这是我的Pull Replication代码:
Replication pull = myApp.getDatabase().createPullReplication(url);
List<String> channels = new ArrayList<>();
channels.add("xyz");
pull.setContinuous(true);
pull.start();
pull.addChangeListener(this);
pull.setChannels(channels);
这是正确的行为还是我的结局不正确?我的假设是Pull复制代码甚至不应该查看来自不同通道的数据。这个假设是否正确?