2016-11-16 2 views
0

Я использую pouchdb и couchDb в качестве db для моего первого мобильного приложения для мобильных устройств.sync pouchdb с фильтрованной репликацией

https://pouchdb.com/2015/04/05/filtered-replication.html

на основе вышеизложенного, как я настроен pouchdb и синхронизацию с couchdb.I делают фильтрации на основе пользователя. когда пользователь выходит из системы и регистрируется снова, доступны значения db. Каков наилучший подход к дизайну?

Есть ли какой-нибудь пример, где я могу обратиться?

configurePouchdb(user) { 
var db = new PouchDB('dbname', {adapter: 'websql'}); 

var serverSideFilter = { 
     _id: "_design/app", 
     filters: { 
      "by_user": function (doc, req) { 
       return doc._id === '_design/app' || (doc.userId != undefined && doc.userId === req.query.userId); 
      }.toString() 
     } 
    }; 
    db.put(serverSideFilter).then(function (doc) { 
     // design doc created! 
    }).catch(function (err) { 
     // if err.name === 'conflict', then 
     // design doc already exists 
    }); 
    db.sync('http://127.0.0.1:5984/dbname', { 
     live: true, 
     retry: true, 
     filter: 'app/by_user', 
     query_params: {"userId": user} 
    }); 
    return db; 
} 

ответ

4

Насколько я знаю, вид в любом CouchDB или PouchDB не имеют REQ аргумент, так как представления генерирует только один индекс, который не изменяется среди пользователей.

Как указано в https://pouchdb.com/2015/04/05/filtered-replication.html, вместо правильной проверки подлинности не рекомендуется использовать отфильтрованные ответы. Существует хороший рецепт от одного из главных коммиттеров из PouchDB в https://github.com/nolanlawson/pouchdb-authentication#couchdb-authentication-recipe

В любом случае, есть очень хорошее руководство для фильтрованной репликации в документации API PouchDB: https://pouchdb.com/api.html#filtered-replication.

Смежные вопросы