2017-05-08 4 views
0

Ich richte eine Pouchdb/Couchdb Live Sync ein. Ich verwende pouchdb-authentication, um mich einzuloggen.Pouchdb/CouchDB all_docs Fehler

Wenn auf meinem lokalen Dev-Server, alles funktioniert gut.

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) 
    }) 

auf die Produktion, erhalte ich diesen Fehler:

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

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

ich bemerkt habe, dass dies nur geschieht, wenn eine neue Sync auftritt (sonst scheint es nicht all_docs heißt) all_docs scheint auf meinem lokalen Dev-Server überhaupt nicht aufgerufen zu werden, unabhängig vom Status.

Andere Aufrufe (an _session, _changes) usw. funktionieren einwandfrei auf dem Produktionsserver.

Antwort

1

Sieht aus, als müssten Benutzer Admin-Berechtigungen für eine Datenbank haben, um all_docs zu verwenden. Meine Benutzer waren nur "Mitglieder. all_docs wird nicht in pouchdb aufgerufen, es sei denn, eine Datenbank existiert bereits auf dem couchdb Server, aber nicht auf dem Client.