我创建了一个包含多个数据库的应用程序,我需要使用 Kinvey 来维护这些数据。目前,我正在使用 sqlite 在本地存储所有数据。我可以编写代码来同步自己,但让 Kinvey 来做会更好。当我不尝试使用缓存和离线时,数据会正确写入 Kinvey 数据库...我可以通过 Web 控制台验证这一点。当我尝试为缓存和离线策略添加两行代码时,没有任何内容写入 Kinvey db,并且出现类似于下图所示的错误。这只是 logcat 错误的一部分。离线用户登录似乎有问题??我在下面包含了一些简单的代码,可以重现我遇到的问题。我已经多次阅读网站上的指南,但我似乎忽略了一些东西。我添加了服务和权限,如指南所述。我不知道还有什么可以尝试或去哪里。关于我做错了什么的任何想法?谢谢。
AsyncAppData gear = kinveyClient.appData("myCollection",
MyEntity.class);
gear.setCache(new InMemoryLRUCache(), CachePolicy.CACHEFIRST);
gear.setOffline(OfflinePolicy.LOCAL_FIRST, new SqlLiteOfflineStore(this));
kinveyClient.user().login(username, password, new KinveyUserCallback() {
@Override
public void onFailure(Throwable arg0) {
}
@Override
public void onSuccess(User arg0) {
}
});
MyEntity event = new MyEntity();
event.setTitle("Launch Party");
gear.save(event, new KinveyClientCallback() {
@Override
public void onFailure(Throwable arg0) {
}
@Override
public void onSuccess(MyEntity arg0) {
Toast.makeText(getApplicationContext(),
"Object saved is: " + arg0.getTitle(),
Toast.LENGTH_LONG).show();
}
});
kinveyClient.user().logout().execute();
这是 LogCat 错误的一部分:
01-20 15:42:15.257: E/SQLiteDatabase(6992): 插入 json 时出错={"Title":"Launch Party","id":"5e8684e321664fa797f4d1cf53f55082"} 删除=0 _id=5e8684e321664fa797f4d1cf53f55082=0user 15:42:15.257:E/SQLiteDatabase(6992):android.database.sqlite.SQLiteConstraintException:offlinemyCollection._user 不能为 NULL(代码 19)