問題タブ [couchbase-sync-gateway]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - javaコードから追加されたドキュメントがcouchbase liteと同期しない
ローカルのcouchbaseサーバーからAndroidおよびIOSアプリケーションに同期しましたが、モバイルからサーバー、サーバーからモバイルで正常に機能しています。次に、JAVA Web アプリケーションからローカル サーバーにドキュメントを挿入しようとしましたが、成功しました。しかし問題は、Java Web アプリケーションによって挿入されたドキュメントが ios/android モバイル アプリケーションの両方と同期していないことです。ドキュメントをローカル サーバーに挿入するための私の Java コードは次のとおりです。
このコードでは、1 つのバケットを作成してから、必要な値を保持する 1 つの json オブジェクトを作成し、このオブジェクトを json ドキュメントに渡し、最後にそのドキュメントをバケットに挿入しました。
ドキュメントを作成するためのモバイル側のコード:
このコードでは、単純に 1 つのドキュメントを作成し、それに値を入れています。
私の同期コードは次のとおりです。
双方向同期を行っている場所。Javaコードのどこが間違っているのかわかりません。この問題を解決するのを手伝ってください
couchdb - Couchbase Lite でのドキュメントのパージ
Couchbase lite を使用したモバイル アプリがあります。ユーザーがログアウトするときに、デバイス上のドキュメントの一部を削除したいと考えています。ユーザー固有のドキュメント。すべてのドキュメントを削除したくありません。ドキュメントには、purgeDocument()
それらのユーザー固有のドキュメントで呼び出すことができると思われるメソッドがあります。
問題は、ユーザーが再度ログインしてプル レプリケーションを実行すると、パージされたドキュメントがデバイスに再同期されないことです。
CouchDB 同期プロトコルについて私が知っているほとんどの情報に基づいて、再同期をトリガーするユーザー固有のドキュメントに新しいシーケンス更新がないため、それらが再同期されないことは理にかなっています。
この問題にどのようにアプローチすればよいですか?
可能性
- データベース全体 (共通ドキュメントを含む) を削除すると、パフォーマンスが低下します。
- どういうわけか、レプリケーターの最後のシーケンスをリセットし、レプリケーターが既にダウンロードしたドキュメントをネットワーク経由で転送しないことを願っています。(おそらくCBLを台無しにするでしょう)
- ユーザー固有のドキュメントを格納するデータベースと、共通のドキュメントを格納するデータベースを別々に用意します。データベースは (チャネルごとに) フィルタリングされたレプリケーターを持つことができるため、受信データを個別のデータベースに分割することができます。問題は、CBLModel オブジェクト ラッパーを使用する場合に、異なるデータベースのドキュメント間でシームレスに参照をロードすることです。
couchdb - Couchbase Sync Gateway: データベースごとに複数のバケット
私はCouchDBでサービスを構築することを始めました。このアプリは、ユーザーがいくつかの理由で無制限のバケットを持つように設計されており、完全に機能しました。いくつかのエンタープライズ機能のために、Couchbase に切り替えました。私は PouchDB を使用しているため、Sync Gateway が必要です。残念ながら、1 つのバケット/データベースしかマッピングできません。
これは私にとって完璧な解決策です: /db/bucket/etc
これを達成する方法はありますか?
android - Couchbase Lite for GCM の Notification Worker
Android アプリで Couchbase lite を実装していますが、プルに Couchbase lite 同期を使用するより良い方法は、継続的なプルではなく GCM を使用することです。ここでチュートリアルを行っていましたが、同じアプリのリポジトリはhereです。
リポジトリの readme に記載されているように、このリポジトリから通知ワーカー バイナリを使用する必要があります。
私はそれがどのように機能するかをすべて理解しました。また、独自の同期ゲートウェイを使用してサンプル アプリを正常に実行することもできます。しかし、アプリケーションで通知ワーカー スレッドを機能させる方法を取得できません。
この通知ワーカー バイナリは、ここで説明したように同期ゲートウェイと通信します: http://www.slideshare.net/droidconae/droidcon-dubai/32
Android アプリで動作させるにはどうすればよいですか? そして、変更を取得するために果たす実際の役割と、同期要求を送信する必要がある相手をどのように決定するのでしょうか?
参考文献やガイドは非常に役立ちます。
前もって感謝します。
google-app-engine - SyncGateway の Admin REST API へのアクセスを制限する
ドキュメントによると、のAdmin REST APIはSyncGateway
公開されるべきではありません。
見積もり:
デフォルトでは、管理 REST API はポート 4985 で実行されます (adminInterface 構成パラメーターを変更しない限り)。このポートを公開しないでください — ファイアウォールの内側に属します。このポートにアクセスできる人は誰でも、データベースとユーザー アカウントに自由にアクセスして制御できます。
これは理にかなっていますが、Google AppEngine で実行され、セッションのサインアップ/作成を処理するアプリケーション サーバーに、公開せずに API へのアクセスを許可するにはどうすればよいのでしょうか? :8091
Admin REST API を公開するが、リクエストを送信する特定のサーバーへのアクセスを制限したり、ポートの GUI のようにユーザー名とパスワードの組み合わせを要求したりするオプションはありますか?
編集
明確にするために、質問にコメントを追加しています。
アプリ サーバー (GAE 上で実行) と Couchbase サーバー (DigitalOcean 上で実行) は 2 つの異なる物理デバイスであるため、異なる IP アドレスを持っています。意味: 私の GAE サーバーから Couchbase サーバーへの接続はその後何の影響も与えないため、私のadminInterface構成パラメーターをループバック アドレスに変更することはできません。syncgateway_config.json
私が間違っていなければ、サーバーは外部からアクセスできませんか?!
couchbase - 同期ゲートウェイ REST API を介して作成されたユーザーへのパラメーターの追加
PUT
カウチベース同期ゲートウェイ REST API を使用すると、登録 URI にある JSON に電子メール アドレスを含めることができます_user/<foo>
。私の使用例では、SMS を介して電話番号登録を実装し、バケットで作成された同期ゲートウェイ ユーザー レコードに電話番号を含めたいと考えています。これにより、電話番号を保存するための別のドキュメントを作成する必要がなくなります。メソッドを介して送信される JSON に含めることができるカスタム フィールドを指定する方法はありますPUT
か?