Pouchdb/CouchDB all_docs 错误

Pouchdb / CouchDB all_docs error

我正在设置 pouchdb/couchdb 实时同步。我正在使用 pouchdb-authentication 登录。

在我的本地开发服务器上,一切正常。

  let pdbConfig = { skipSetup: true}; 
  let remoteDb : any = new PouchDB(config.couch.server, pdbConfig);
  remoteDb.login(config.couch.username, config.couch.password).then(u => {
    db.sync(remoteDb, {
      live: true
    }).on('complete', (info)=> {
      store.dispatch({type: "REMOTE_SYNC_COMPLETE"});
    })

  }).catch(e=>{
    console.error(e)
  })

生产时,我收到此错误:

{"error":"case_clause","reason":"{forbidden,<<\"You are not a db or server admin.\">>}"}

请求URL:https://myproductionserver:6984/userdb-82911660-c14b-472c-adb4-6f2ed280cae9/_all_docs?conflicts=true&include_docs=true

我注意到只有在发生新的同步时才会发生这种情况(否则它不会出现 all_docs 被调用) all_docs 在我的本地开发中似乎根本没有被调用服务器,无论状态如何。

其他调用(对_session、_changes)等对生产服务器工作正常。

看来用户需要对数据库具有管理员权限才能使用 all_docs。我的用户只是“成员。all_docs 不会在 pouchdb 中调用,除非 couchdb 服务器上已经存在数据库,但客户端上不存在。