我正在尝试查询领域,但是查询中的RealmResults列表从没有正确的列表。我正在使用realm studio来查看我的数据库。将对象添加到数据库工作正常。但是由于某种原因,查询根本不起作用。例如,这是我的代码。 config是一个类变量。登录位于OnClick函数内部。
private static SyncConfiguration config;
private Realm realm;
SyncCredentials credentials = SyncCredentials.usernamePassword(loginEmail,loginPass,false);
SyncUser.logInAsync(credentials, AUTH_URL, new SyncUser.Callback<SyncUser>() {
@Override
public void onSuccess(SyncUser result) {
user = result;
config = result.createConfiguration(REALM_url).build();
Realm.setDefaultConfiguration(config);
Realm.setDefaultConfiguration(config);
realm = Realm.getInstance(config);
realm.beginTransaction();
User user = realm.createObject(User.class, "yolo");
user.setEmail(loginEmail);
user.setPassword(loginPass);
realm.commitTransaction();
//query is for debugging
RealmQuery<User> query = realm.where(User.class);
query.equalTo("age", 0);
RealmResults<User> results = query.findAll();
realm.close();
}
@Override
public void onError(ObjectServerError error) {
//emailText.setError("Retry Login");
//emailText.requestFocus();
Log.e("Login Error", error.toString());
}
});
运行该查询时,我有10个用户,所有用户的年龄均为零。返回的大小为1。如果我围绕事务进行循环,并且循环3次,结果将为3。
如果我使用完全相同的方式,使用相同的配置,在不同的函数中初始化领域,即使现在在上一次提交之后大小为10,它也会返回大小为0的列表。我完全不知道问题是什么。因为提交有效,所以我知道问题不在于URL错误。我使用的查询与文档完全相同。我完全按照他们的文档和示例进行设置。我完全不知所措。
现在还发生了这样的情况:在一个单独的函数中运行查询使我“无法评估Method抛出的表达式'java.lang.IllegalStateException”,根据其文档,findAll()不会抛出该表达式。>