Я пытаюсь запросить область, но мой список 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.
Если я инициализирую область точно таким же образом, используя ту же конфигурацию, вс другой функцией, он возвращает список размером 0, хотя теперь размер равен 10 после предыдущего коммита.Я понятия не имею, в чем проблема.Поскольку коммиты работают, я знаю, что проблема не в неправильных URL.Я использую запросы точно так же, как их документация.Я настроил это в точности как их документация и их пример.Я в полной растерянности.
Теперь также происходит, что выполнение запросов в отдельной функции дает мне «неспособность оценить метод выражения, бросил« java.lang.IllegalStateException », который не генерируется findAll () согласно их документации..