1

CouchbaseLite に新しいドキュメントを保存しようとしていますが、この問題に直面しており、例外が発生しています。

com.couchbase.lite.CouchbaseLiteException

例外メッセージ:

com.couchbase.lite.CouchbaseLiteException
com.couchbase.lite.CouchbaseLiteException
null
[1462915328, 451, 1462915272, 5, 1463020336, 137, 1463020280, 9, 1462744624, 39,        1462943280, 4, 1463283568, 58, 1463284808, 9, 1459791184, 28, 1463191704, 0, 1463287160, 0, 1463294584, 8, 1463285984, 2, 1463298952, 2, 1461828864, 24, 1459658792, 6, 1461922408, 22, 1459660472, 15, 1461916072, 3, 1461898944, 8, 1459489944, 18, 1459609664, 2, 1459600392, 2, 1459600456, 4, 1460186072, 84, 1460049056, 48, 1459080768, 0, 1459081896, 17, 1460208056, 11, 1460002968, 66, 1459100640, 0]
null
Status: 400
[]

背後で何が起こっているのか、例外がはっきりしないと思っていたので、何をすべきか、そこから何を解釈すればよいかわかりません。

これが私のコードです:

Map<String, Object> map = new HashMap<String, Object>();
    map = (Map<String, Object>) gson.fromJson(json, map.getClass());
    //map.put("_id", UUID.randomUUID().toString());

    Document document = mDatabaseLocal.createDocument();

    try {
        document.putProperties(map);
    } catch (CouchbaseLiteException e) {
        e.printStackTrace();
    }
4

1 に答える 1

1

これについて多くの調査を行った後:

のために予約されているため、アンダースコア文字 で始まるキーを持つプロパティをマップに含めないでください。'_'CouchbaseLite

CouchbaseLite は現在、これに対する適切な例外メッセージを表示しないため、行き詰まるでしょう。注意が必要な唯一のことは、そのようなキーをマップに含めないことです。

class(obj) に _id フィールドと _rev フィールドがある場合と同様に、それらを削除する必要があります

map.remove("_id");
map.remove("_rev");

電話する前に:

try {
        document.putProperties(map);
    } catch (CouchbaseLiteException e) {
        e.printStackTrace();
    }
于 2014-04-03T11:23:36.260 に答える