2017-03-16 8 views
1

私は現在電子で構築しているオフラインの準備ができているアプリケーションを持っています。PouchDBのデータを制限する

コアの要件は、すべてのデータが制限されている(読み書きするユーザーである必要があります)と、そのデータ内でさらに一部のデータがユーザーに制限されていることです(アカウント情報、メッセージなど...)

ので、基本的に、私はデータのみを同期したいユーザーは ない(すべてのデータは関係なく、制限のデベロッパーツールを使用して見ることができるためである)へのアクセス権を持っている必要があります任意のデータをオフラインで複製する必要はありませ

今私がんPouchDBのオフラインストアに、そのユーザがアクセス権を持っている場合、およびすべてのユーザがアクセスできるすべてのデータがある場合。

私は以下の投稿/ガイドを読みましたが、まだ少し混乱しています。それは私がやりたいことができていても私の理解のフィルタリングから

  • Restricting Access to local PouchDB
  • https://www.joshmorony.com/creating-a-multiple-user-app-with-pouchdb-couchdb/
  • https://pouchdb.com/2015/04/05/filtered-replication.html
    • は悪い選択のパフォーマンスが賢明です。

      プロキシの設定は機能しますが、基本的にはREST APIになり、データの同期が崩れます。

      私が思う最後の選択肢は、プライベート情報を含むすべてのユーザー用のデータベースと、すべてのユーザーが利用できる情報を保持する追加のデータベースを用意することです。

      私はこのアプローチを持っている唯一の本当の問題は、どのようにデータがプライベートであること取り扱うが、2人のユーザ間で共有されている(などのメッセージ、...)

      私はどのようにデータの包括的なビューの後に多くの午前べきコード例とは対照的に、アプリケーションの概念アーキテクチャーに本当に苦労しています。

    答えて

    0

    問題の解決策はたくさんあります。 IBM Cloudantは、単純なREST APIの代わりにCouchDBインタフェースをシミュレートするプロキシであるCloudant Envoyで作業を開始しました。あなたはそれについてEnvoy over at ibm.comのサイトでもっと読むことができます。 A custom replicator for PouchDBはGithubでも入手できます。

    これにはblog post on Medium.comもあります。

    考え方はずっと古いCouchbase Sync Gatewayと同じです。 CouchbaseはCouchDBと共通のルーツを持っていますが、まだCouchDBでのレプリケーションをサポートしているかどうかはわかりません。

    最も簡単な方法は、サーバー上のユーザーごとに1つのデータベースと、共有データを取得する共通のデータベースを作成することです。このソリューションに関する詳細情報が必要な場合はお知らせください。

    +0

    このシナリオでは、2人のユーザー(つまりメッセージ)にプライベートなデータを処理するために何を使用すれば、これは別のデータベースになるのでしょうか? –

    +0

    メッセージがアプリケーションの主要な部分でない場合は、送信メッセージを受信者に受信メッセージとしてコピーするサーバー側スクリプトを設定できます。アプリの主な目的がメッセージングシステムである場合は、別の設定を検討する必要があります。 –

    関連する問題