問題タブ [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.
android - Couchbase lite Android - バケットにドキュメントがありません
GrocerySync (Android)をダウンロードし、デバイスとエミュレーターの両方でアプリを実行しました。
しかし、私は次の疑問を持っています、
1) データはどこに保存されていますか?確認方法は?
2) Couchbase lite コンソールでデータ バケットが (指定された名前で) 作成されません。手動でバケットを作成する必要がありますか?
どんな助けでも大歓迎です。
3)データがCouchbase liteに保存されるように設定を行う必要がありますか?もしそうなら、どのような設定を行う必要がありますか?
android - Androidでcouchbase Syncゲートウェイが接続に失敗する
WindowsマシンでGrocery-syncのcouchbase androi demoを実行しようとしています。
Couchbase モバイルからSync-Gatewayをダウンロードしました。
このデモの実行中に、アイテムをローカル Cblite に挿入できました。ただし、 SyncGatewayからドキュメントを取得することはありません。Sync-Gatewayでリクエストが表示されたら-
404 no such database "grocery-sync" が表示されます。
同期ゲートウェイの応答:
2016-04-18T01:32:04.612+05:30 ==== Couchbase 同期ゲートウェイ/1.2.0(83;41aa099) ====
2016-04-18T01:32:04.614+05:30 db /sync_gateway をバケット「sync_gateway」、プール「default」、サーバーとして開く
2016-04-18T01:32:04.614+05:30 Walrus データベース sync_gateway を開いています
2016-04-18T01:32:04.615+05:30 データベース「sync_gateway」にデフォルトの同期関数「channel(doc.channels)」を使用
2016-04-18T01:32:04.615+05:30 ゲスト ユーザーを構成にリセット
2016-04-18T01:32:04.615+05:30 でプロファイル サーバーを起動しています
2016-04-18T01:32:04.615+05:30 127.0.0.1:4985 で管理サーバーを起動しています
2016-04-18T01:32:04.621+05:30 localhost:4984 でサーバーを起動しています ...
2016-04-18T01:35:26.216+05:30 HTTP: #001: GET /grocery-sync/_local/a08b05842f7f 55be5f15b12b58de0a9b10855d71
2016-04-18T01:35:26.217+05:30 HTTP: #002: GET /食料品同期/_local/65fae3c5d53a 75a649f38f098ba00422c70b9786
2016-04-18T01:35:26.218+05:30 HTTP: #002: --> 404 そのようなデータベース「食料品同期」はありません (1.5 ミリ秒)
2016-04-18T01:35:26.217+05:30 HTTP: #001: --> 404 no such database "grocery-sync" (1.0 ms)
2016-04-18T01:35:26.296+05:30 HTTP: #003: POST /grocery-sync/_changes
2016-04-18T01:35:26.297+05:30 HTTP: #003: --> 404 そのようなデータベース「食料品同期」はありません (0.5 ミリ秒)
2016-04-18T01:35:36.310+05:30 HTTP: #004: POST /grocery-sync/_changes
2016-04-18T01:35:47.359+05:30 HTTP: #004: --> 404 そのようなデータベース「食料品同期」はありません (11048.9 ミリ秒)
2016-04-18T01:35:57.375+05:30 HTTP: #005: POST /grocery-sync/_changes
2016-04-18T01:35:57.375+05:30 HTTP: #005: --> 404 そのようなデータベース「食料品同期」はありません (0.5 ミリ秒)
Sync-Gateway 接続は、Couchbase を使用するための最初のステップです。私が立ち往生してサーフィンするまで。
couchbase - N1QL を使用して同期ゲートウェイ バケットをクエリする
N1QL を使用して同期ゲートウェイ バケットをクエリできるかどうか知りたいですか? 通常のカウチベース バケットとして動作しますか?それとも、同期ゲートウェイが追加するメタデータのために、Rest API を介してのみクエリを実行できますか?
現在、同期ゲートウェイ バケットの下にあるドキュメントのレプリカを保持する webhook ハンドラーがあります。クライアントにプッシュバックする必要がある集計を行う必要があります。では、同期ゲートウェイで n1ql を介して直接、または集約を行い、更新されたドキュメントを単純にプッシュして同期ゲートウェイにプッシュする Webhook を使用して、このすべての重労働を行うことができますか?
PS: webhooks+Rest APIS オプションは、現在私にとって完璧に機能します。このホップが必要かどうかを知りたいですか?
android - カウチベース同期ゲートウェイで同期URLを設定してカウチベースサーバーに接続する方法
モバイル アプリに CouchBase Lite を使用しようとしています。私はcouchbaseのチュートリアルで見ましたが、couchbaseサーバーではなくwalrusサーバーの同期URLを追加する方法を示しています。カウチベース サーバーの同期 URL を設定するにはどうすればよいですか。
以下は、私が使用しているコードですが、couchbaseサーバーからデータを送受信できません
private URL createSyncURL(boolean isEncrypted){
URL syncURL = null;
String host = "https://127.0.0.1";
String port = "4986";
bucketName = "sync_gateway";
try {
syncURL = new URL(host + ":" + port + "/" + bucketName);
} catch (MalformedURLException me) {
me.printStackTrace();
}
return syncURL;
}
同期ゲートウェイの config.json ファイルは以下のとおりです
以下はAndroidアプリのコードです
couchbase - 同期ゲートウェイのcouchbaseで同期機能を動的に変更する方法
たとえば、同期機能を動的に変更する方法はありますか。ドキュメントにフィールド ID があり、特定の ID に属するドキュメントを取得したいので、ここでは ID を変数にします。例えば。以下はID=4の同期関数です
これは ID=4 でのみ機能します。同期機能を動的にするにはどうすればよいですか。同期関数に引数を与える方法はありますか?
EDIT 1追加のユースケース
わかりましたので、私のユースケースはこのようなものです。ユーザーがログインしたときに、CouchBase Server から CouchBase lite にユーザー固有のデータを取得する必要があるアプリがあります。My CouchBase Server には 20000 個のドキュメントがあり、ユーザーごとに 5 個のドキュメントがあるため、(20000/5) 4000 人のユーザーがいます。したがって、ユーザーがアプリにログインすると、CouchBase サーバーは、20000 個のドキュメントすべてではなく、そのユーザーに関連する 5 つのドキュメントのみを送信する必要があります。
編集2
これが私がレプリケーションを実装した方法です
couchbase - シャドウ同期バケットからメイン バケットへ
1 つの同期ゲートウェイ バケット (sg_bucket としましょう) と別のメイン バケット (mb_bucket としましょう) があります。mb_bucket にデータを入れると、バケットのシャドウイングを行ったので、sg_bucket で見ることができます。しかし、sg_bucket からアプリのドキュメントを取得して更新し、sg_bucket に送り返すと、mb_bucket で更新されたドキュメントを取得できません。バケットのシャドウイングは一方向、つまり mb_bucket から sg_bucket にのみ機能しているようですが、逆方向には機能していないようです。バケットのシャドウイングを両方の方法で機能させる方法はありますか
couchbase - Couchbase Lite プル レプリケーション
私はアンドロイドとウェブアプリを持っています。Android アプリは Couchbase Lite を使用し、Web アプリは Couchbase を使用します。私は Couchbase Sync Gateway を使用して、これら 2 つのデータベース間のデータ複製を有効にしています。
これまでのところ、モバイルからデータを送信し、Web アプリと 2 番目のモバイル デバイスの両方でデータを受信するのに問題なく動作します。すべての送信ドキュメントに「_sync」パラメータが追加されていることに気付きました。
私の質問は、Web アプリを介して (couchbase データベースに) 追加されたドキュメントをレプリケーションに参加させるにはどうすればよいですか? (デフォルトではフィールド「_sync」はありません)
編集
Legendary_Hunter が示唆したように、Shadow を使用してみましたが、まだ機能しません。私の設定ファイル:
edit2 (29.05.16)
挿入は次のようになります
edit3
それで、ようやくシャドーイングが機能するようになりました。誰かが同じ問題を抱えていたら。私の基本データベースは kris_mobile_db で、syncGateway シャドーイング データベースは kris_mobile_db_sync です。構成ファイル:
angularjs - PouchDB+Couchbase+Sync Gateway クッキー認証
次のシナリオがあります。
PouchDB は、ユーザーのログイン情報をアプリケーション サーバーに送信します。
アプリケーション サーバーは同期ゲートウェイに対して認証します。
取得した Cookie が angular アプリケーションに返されます。
問題は、その Cookie で認証するように PouchDB を構成する方法です。
Cookieヘッダーを設定しようとしましたが、うまくいきませんでした。
ヒントをいただければ幸いです。