领域SyncConfiguration.Builder已弃用

时间:2018-08-06 09:29:33

标签: android realm

我正在使用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());

但是登录失败。

谢谢。

1 个答案:

答案 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()