gpt4 book ai didi

Android - Couchbase lite - 用过滤器拉 - Replication.setFilter

转载 作者:太空宇宙 更新时间:2023-11-03 10:59:41 27 4
gpt4 key购买 nike

我正在开发一个 android messagerie 应用程序,消息存储在互联网上的 CouchDB(Apache) 数据库中。如何在我的 Android 设备上使用过滤器提取消息?

Android 代码段:

Replication pull = new Replication(messageDB, messageUrl, Replication.Direction.PULL);

//filter
pull.setFilter("message/by_username");
HashMap<String, Object> filterParams = new HashMap<>();
filterParams.put("username", usr);
pull.setFilterParams(filterParams);

pull.setContinuous(false); //oneshot
pull.start();

Apache 设计文档:

{
"_id": "_design/message",
"views": {
"by_username": {
"map": "function (doc) {\n emit([doc.username]);\n \n}"
}
},
"filters": {
"by_username": "function(doc, req){ if(!doc.username) return false; if(req.query.username && req.query.username != doc.username){return false} else {return true}}"
},
"language": "javascript"
}

使用 block 过滤器,同步永远不会停止,但数据库始终为空(3 分钟后我没有找到任何文件)。

如果没有 block 过滤器,所有消息仅需几秒钟即可下载。谢谢。

最佳答案

来源:https://developer.couchbase.com/documentation/mobile/current/guides/couchbase-lite/native-api/replication/index.html#filtered-pull-from-couchdb-pouchdb- or-cloudant

过滤来自 CouchDB、PouchDB 或 Cloudant 的拉取

从 Couchbase Lite 1.2 开始,非 Couchbase 数据库的拉取复制中的过滤功能不再可用。在 POST/{db}/_changes 请求中处理过滤器参数的方式不兼容(参见#1139)。

关于Android - Couchbase lite - 用过滤器拉 - Replication.setFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47220517/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com