我正在使用Realm Cloud Sync,并且曾经编写以下代码登录服务器。
if (SyncUser.current() == null) {
SyncCredentials myCredentials = SyncCredentials.usernamePassword("userid", "pass", false);
SyncUser syncUser = SyncUser.logIn(myCredentials, AUTH_URL);
}
SyncConfiguration configuration = new SyncConfiguration.Builder(SyncUser.current(), REALM_BASE_URL + "/~/myDB").build();
Realm.setDefaultConfiguration(configuration);
然后将领域插件更新到版本5.3.1之后,不推荐使用 SyncConfiguration.Builder 命令。现在建议使用 SyncUser.createConfiguration 。 我可以举一个使用该命令的例子吗?
我尝试使用
Realm.setDefaultConfiguration(SyncUser.current().createConfiguration(REALM_BASE_URL + "/~/myDB").build());
但是登录失败。
谢谢。
答案 0 :(得分:2)
您需要先登录才能拥有有效的SyncUser。
SyncUser user = SyncUser.logIn(SyncCredentials.usernamePassword(username, password, true), Constants.AUTH_URL);
SyncConfiguration config = user.createConfiguration(Constants.USER_REALM).build();
所以我猜测以下方法会起作用:
SyncUser syncUser = SyncUser.current();
if (syncUser == null) {
SyncCredentials myCredentials = SyncCredentials.usernamePassword("userid", "pass", false);
syncUser = SyncUser.logIn(myCredentials, AUTH_URL);
}
SyncConfiguration configuration = syncUser.createConfiguration(REALM_BASE_URL + "/~/myDB").build();
请注意,这默认情况下使用partial synchronization
,因此,如果要保留以前的行为,则可能必须调用.fullSynchronization().build()
。