我有Realm Object服务器,并且创建了一个新的Realm,并将其命名为 Test 。我在其中创建了一个名为水的新表。
这是我的网址:
public static final String AUTH_URL = "https://" + INSTANCE_ADDRESS + "/auth";
public static final String REALM_URL = "realms://" + INSTANCE_ADDRESS + "/Test";
这是我要从水表读取数据的代码:
SyncCredentials credentials = SyncCredentials.nickname(UUID.randomUUID().toString(), true);
SyncUser.logInAsync(credentials, AUTH_URL, new SyncUser.Callback<SyncUser>() {
@Override
public void onSuccess(SyncUser user) {
SyncConfiguration syncConfiguration = new SyncConfiguration.Builder(user, Constants.REALM_URL)
.build();
Realm realm = Realm.getInstance(syncConfiguration);
results = realm.where(Water.class).findAllAsync();
callback.onSyncedUser(user.getIdentity());
}
@Override
public void onError(ObjectServerError error) {
callback.onRealmError(error.getErrorMessage());
}
});
问题是我总是得到0个结果,但是我很确定我已经在服务器上保存了数据,因为我是手动输入的。
有人可以帮忙吗?
答案 0 :(得分:1)
您需要等待查询完成。您是否尝试过添加RealmChangeListener?
异步查询只会在一段时间后返回 。
如果那行不通,我会告诉您将waitForInitialRemoteData()
与Realm.getInstanceAsync
结合使用。