同期ゲートウェイchannels
経由でデータを取得する際に問題があります。Couchbase Liteが同期ゲートウェイ経由でチャネルをプルしていません
channels
は基本的には、特別な方法でドキュメントにマークを付けることができるタグのフォームです。
私は
をやろうとしている私は、アプリケーションを閉じると、ローカルDBを削除し、その後、私はなるように設定されたchannels
内のすべての文書を期待していたアプリケーションを再開しています引っ張られるが、何も引っ張られない。
セットアップ
私はCouchbaseのLiteと1.4.0と最新のSync_Gatewayを使用しています。
同期ゲートウェイの設定ファイル、私はデフォルトの同期機能を使用しています:私は、ドキュメントを作成するたびに
private String[] docChannels = new String[]{
"channel1",
"channel2",
};
private String[] configChannels = new String[]{
"config1",
"config2",
};
URL url = null;
try {
url = new URL("http://127.0.0.1:4984/db");
} catch (MalformedURLException e) {
e.printStackTrace();
}
Replication push = d.createPushReplication(url);
Replication pull = d.createPullReplication(url);
Replication pullConfig = d.createPullReplication(url);
pull.setChannels(Arrays.asList(docChannels));
pullConfig.setChannels(Arrays.asList(configChannels));
pullConfig.setContinuous(false);
pull.setContinuous(true);
push.setContinuous(true);
Authenticator auth = AuthenticatorFactory.createBasicAuthenticator("user1", "pass");
push.setAuthenticator(auth);
pull.setAuthenticator(auth);
pullConfig.setAuthenticator(auth);
push.start();
pullConfig.start();
pull.start();
、私は追加しますので、同じよう
{
"databases": {
"db": {
"server": "http://127.0.0.1:8091",
"username": "db",
"password": "pass",
"users":{
"user1":{
"password":"pass"
}
}
}
}
}
私はCouchbaseのliteので同期のゲートウェイにアクセスしています["config1"]
の値を持つchannels
キー。私はここで間違ってやっているのかわからないのです
"_sync": {
"rev": "1-87cdc8c1fd5e0e4ce1a0897cbd47aca1",
"sequence": 4,
"recent_sequences": [
4
],
"history": {
"revs": [
"1-87cdc8c1fd5e0e4ce1a0897cbd47aca1"
],
"parents": [
-1
],
"channels": [
[
"config1"
]
]
},
"channels": {
"config1": null
},
"time_saved": "2017-09-22T13:20:43.6061974-05:00"
}
:よう
マイドキュメントの同期情報は今見えます。 Couchbaseサーバーへのプッシュはうまく動作しますが、プルすることはできません。
ありがとうございました。
を見てしまいますこれはあなたが提案したものです。 –
私はそれを知らなかった。また、ユーザーに同期するために必要なチャネルを追加する必要があります。例えば"admin_channels":user1の["config1"] – combinatorial
これはうまくいきました。私は重要なことを誤解していたようだが、それについてもっと深く読まなければならないだろう。あなたの答えを編集して私はそれを受け入れるでしょう –