2016-11-16 11 views
0

私は、オフラインの最初のモバイルアプリケーションのためのデータベースとしてpouchdbとcouchDbを使用しています。私はcouchdb.Iは、ユーザベースのフィルタリングをやっているとpouchdbとの同期を設定したように上記に基づいてフィルタリングされた複製を使用した同期pouchdb

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

。ユーザーがログアウトして再度ログインすると、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のように、適切な認証の代わりにフィルタリングされた複製を使用することはお勧めしません。 https://pouchdb.com/api.html#filtered-replication:いずれの場合でhttps://github.com/nolanlawson/pouchdb-authentication#couchdb-authentication-recipe

でPouchDBの主要なコミッターの1から良いレシピがあり、PouchDBのAPIドキュメントのフィルタ処理の複製に非常に良いガイドがあります。

関連する問題