私はアンドロイドとウェブアプリを持っています。Android アプリは Couchbase Lite を使用し、Web アプリは Couchbase を使用します。私は Couchbase Sync Gateway を使用して、これら 2 つのデータベース間のデータ複製を有効にしています。
これまでのところ、モバイルからデータを送信し、Web アプリと 2 番目のモバイル デバイスの両方でデータを受信するのに問題なく動作します。すべての送信ドキュメントに「_sync」パラメータが追加されていることに気付きました。
私の質問は、Web アプリを介して (couchbase データベースに) 追加されたドキュメントをレプリケーションに参加させるにはどうすればよいですか? (デフォルトではフィールド「_sync」はありません)
編集
Legendary_Hunter が示唆したように、Shadow を使用してみましたが、まだ機能しません。私の設定ファイル:
{
"log":["CRUD+", "REST+", "Changes+", "Attach+"],
"databases": {
"kris_mobile_db": {
"server":"http://192.168.0.11:8091",
"sync":`
function (doc) {
channel (doc.channels);
}`,
"bucket":"kris_mobile_db",
"users": {
"GUEST": {
"disabled": false,
"admin_channels": ["*"]
}
},
"shadow": {
"server": "http://localhost:8091",
"bucket": "kris_mobile_db_sync"
}
}
}
}
edit2 (29.05.16)
public class DatabaseManager {
private static DatabaseManager manager;
private static CouchbaseEnvironment env = DefaultCouchbaseEnvironment.builder().autoreleaseAfter(6000).build();
private static String bucketName = "kris_mobile_db";
private Cluster cluster;
private Bucket bucket;
public static DatabaseManager getInstance(){
if(manager == null)
manager = new DatabaseManager();
return manager;
}
public Bucket getBucketInstance(){
if(bucket == null)
bucket = cluster.openBucket(bucketName);
return bucket;
}
public boolean establishConnection(String host, String port, String bucketName){
// host: 192.168.0.11, port: 8091
cluster = CouchbaseCluster.create(env, host+":"+port);
DatabaseManager.bucketName = bucketName;
bucket = cluster.openBucket(bucketName);
return true;
}
}
挿入は次のようになります
JsonDocument doc = JsonDocument.create(docId, content);
DatabaseManager.getInstance().getBucketInstance().insert(doc);
edit3
それで、ようやくシャドーイングが機能するようになりました。誰かが同じ問題を抱えていたら。私の基本データベースは kris_mobile_db で、syncGateway シャドーイング データベースは kris_mobile_db_sync です。構成ファイル:
{
"log":["CRUD+", "REST+", "Changes+", "Attach+"],
"databases": {
"kris_mobile_db": {
"server":"http://192.168.0.11:8091",
"sync":`
function (doc) {
channel (doc.channels);
}`,
"bucket":"kris_mobile_db_sync",
"users": {
"GUEST": {
"disabled": false,
"admin_channels": ["*"]
}
},
"shadow":{
"server":"http://192.168.0.11:8091",
"bucket":"kris_mobile_db"
}
}
}
}