【发布时间】:2023-03-15 00:18:01
【问题描述】:
error:"unauthorized"
id:"_design/db"
message:"You are not a db or server admin."
name:"unauthorized"
ok:true
reason:"You are not a db or server admin."
rev:"137-81fe83389359c1cfb50bf928f3558b81"
status:500
在完全卸载/重新安装应用程序后,Pouchdb 正在尝试推送设计文档(因此本地 pouchdb 应该已被删除)。我猜这是在某处的更改流中。但奇怪的是,couchdb 的版本是 133,而不是 137。
我该如何解决这个问题?我尝试了一个紧凑的,但没有奏效。我能想到的唯一明显的答案是手动对沙发上的设计进行大量修改,使其比 137 更新。
我使用此代码对更改流进行了搜索
var http=require('http');
var url = "http:/server/db/_changes?style=all_docs";
http.get(url, function(res){
var body = '';
res.on('data', function(chunk){
body += chunk;
});
res.on('end', function(){
var test = JSON.parse(body);
test.results.forEach(function(item,index){
if (item.id==="_design/db"){
console.log(item);
}
});
});
}).on('error', function(e){
console.log("Got an error: ", e);
});
得到了 1 个结果,rev 133,正确的结果。那么 pouchdb 是从哪里得到的呢?
--编辑 删除 pouch 数据库似乎可以修复它,直到下一次应用安装。
【问题讨论】:
-
据我所知,
unauthorized表示您必须提供管理员用户名/密码? -
这真的只是因为手机有一些未来版本的设计文档,它没有权限推回沙发上。但似乎每次安装应用程序时,Android 都会以某种方式恢复这个未来版本。
-
@user3405291 我已将问题部分隔离到 Android 7.1。在应用程序升级或卸载时,cordova 不再使用 webview(不知道它使用的是什么)。无论它使用的是保留所有 cookie、pouchdb、IndexDB 和一些离线存储。 SQLlite 似乎已被删除,但我正在彻底测试。