代码之家  ›  专栏  ›  技术社区  ›  itabdullah

领域同步配置。生成器已弃用

  •  1
  • itabdullah  · 技术社区  · 8 年前

    我正在使用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版本之后 同步配置生成器 命令已弃用。现在建议使用 同步用户.createConfiguration . 我能举个例子说明如何使用这个命令吗?

    我试着用

    Realm.setDefaultConfiguration(SyncUser.current().createConfiguration(REALM_BASE_URL + "/~/myDB").build());
    

    但是登录失败。

    谢谢。

    1 回复  |  直到 8 年前
        1
  •  2
  •   EpicPandaForce Jigar Joshi    8 年前

    您需要先登录才能拥有有效的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() .