在试图将couchbase手机(1.1.0版)集成到我们的混合移动应用程序(离子型)中时,我们在iOS上的推送复制中遇到了一个问题。
在应用程序中的某个时候(在创建了本地数据库之后等等),将成功地创建带有某些视图的设计文档。创建并启动连续的推拉复制。
当轮询推送复制状态时,我们注意到它在启动后不久就停止了(对于连续复制来说并不正常)。
Couchbase手机回复错误(404)
WARNING: CBL_Pusher[http://server:4985/bucket-sync-gateway]: _bulk_docs got an error: {
error = "bad_request";
id = "_design/app";
reason = "Invalid doc ID";
status = 400;
}同步网关记录了一个类似的错误:
BulkDocs: Doc "_design/app" --> 400 Invalid doc ID (400 Invalid doc ID)这种情况只发生在iOS上。android版本在复制方面没有问题(也许设计文档被忽略了?)
知道这里有什么问题吗?
干杯,
伯特
发布于 2015-06-26 18:18:04
您正在使用的Couchbase Lite和Sync网关的哪个版本?我相信每个版本的1.1都改进了这种行为。具体来说,当客户端试图上传设计文档时,同步网关现在返回403禁止请求,而不是400坏请求。Couchbase Lite复制器将继续跟踪此状态,而不是因错误而停止。
设计文档是有问题的,因为它们通常以映射、缩减或过滤函数的形式包含可执行(JavaScript)代码。出于安全原因,同步网关(如CouchDB)不允许非管理客户端上传。
更糟糕的是,让iOS应用程序下载设计文档可能违反了苹果开发者的协议,因为应用程序不允许执行下载的代码。(我之所以说“可能”是因为JavaScript代码是在web浏览器中运行的例外。design确实包含JS,您的PhoneGap应用程序代码确实在浏览器中运行,但是map/reduce/filter函数不是在浏览器中运行,而是在Couchbase调用的单独JS上下文中运行。我不是律师,我不知道苹果会怎么想。据我所知,它从来没有出现过。)
-Jens Alfke (移动架构师,Couchbase)
https://stackoverflow.com/questions/31070482
复制相似问题