我通过Api连接到同步门,但我不知道如何过滤一些数据并在我的laravel项目中使用它们。
您在syncgateway配置中没有按通道进行过滤,过滤是同步功能的结果,但它更多的是将通道附加到文档的被动结果。我不知道你使用的是哪个版本,因为你的问题没有,但配置很直接。
您基本上有两种将通道附加到文档的选项,第二种是覆盖第一种:1.在配置文件中没有任何同步功能,只依赖于"channels"属性,该属性将使文档同步到适当的通道。例如:
{ "name": "Duke", "lastName": "Nukem", "channels": ["DukeNukem","Duke"] }
2.在配置文件中具有同步功能:对于文档:{"name":"Duke","lastName":"Nukem"}
你可能有同样的同步功能:
function(doc, oldDoc){
if (doc.name && doc.lastName) {
channel(doc.name);
channel(doc.name + doc.lastName);
}
}
请注意,您必须授予用户查看频道的权限。
在客户端,您需要具有权限的用户,如果您不筛选频道,那么无论何时同步,都会获得文档。
请在这里阅读更多
以下是Swift客户端上关于如何使用"通道"路由数据的示例:
let manager = CBLManager()
let database = try! manager.databaseNamed(dbName)
let pull = self.database.createPullReplication(url)
// We need to sync channels
pull.channels = ["somechannels"]
pull.start()
Store
管理应用程序的一个具体示例是,属于Store的每个文档都将与包含storeID
的通道一起保存。在客户端,当同步时,我们将把storeID
放在channels
中,这样同步将只获得属于该Store
的文档。(我们使用默认的同步功能(
请注意,您需要考虑一些安全问题,请在此处阅读更多信息。