重新连接到互联网后,领域同步不起作用

时间:2018-01-11 23:16:47

标签: android realm realm-object-server

当用户连接到对象服务器(登录)时,我遇到与realm对象服务器同步的问题,而不是切换Internet Off,向db添加新项目,以及切换Internet ON - 数据未同步。
Android应用使用4.3.1领域构建

name

我试图通过调用互联网来恢复运行:

//sync
SyncUser.loginAsync(syncCredentials, urlRealm, new SyncUser.Callback<SyncUser>() {  
@Override
public void onSuccess(SyncUser user){
      syncAccount = new SyncConfiguration
           .Builder(user, urlAccount)
           .waitForInitialRemoteData()
           .name("account_"+userId+".realm")
           .modules(new AccountSchemaModules())
           .errorHandler((session, error) -> {
               Log.e("REALM", "error = " + error.getMessage());})
           .build();

                  syncAccount.shouldDeleteRealmOnLogout();

                  Realm.getInstanceAsync(syncAccount, new Realm.Callback() {
                      @Override
                      public void onSuccess(Realm realm) {
                          syncUserSuccess();
                      }
                  });
              }
          }

//then access to configuration 
Realm.getInstance(syncAccount);

但也没有帮助

更新

我有3个SyncConfiguration,它使用相同的凭据进行SyncUser.loginAsync连接。这可能是原因吗?我也试过使用相同的SyncUser配置,但结果是相同的

是否可以手动注销/登录连接?或者这样做的正确方法是什么?我试过了:

syncAccount.getUser().allSessions().get(i).uploadAllLocalChanges();

但是在syncAccount.getUser().logout() 上我收到了一个错误:“如果用于打开同一个文件,则配置不能有所不同。”

更新2 当我关闭互联网时,我会在日志中看到:

SyncConfiguration

但是在该消息后我没有在日志中看到任何重新连接

当我尝试将项目添加到db时,我会在日志项中看到:

E/REALM_SYNC: Connection[2]: Failed to resolve 'url:9080': Host not found (authoritative)
E/REALM_JAVA: java.lang.IllegalArgumentException: Unknown error code: 3
                                                           at io.realm.ErrorCode.fromInt(ErrorCode.java:195)
                                                           at io.realm.SyncSession.notifySessionError(SyncSession.java:170)
                                                           at io.realm.SyncManager.notifyErrorHandler(SyncManager.java:324)
D/REALM_SYNC: Connection[2]: Reconnecting in 795 milliseconds

和我之后的情况相同,我打开Internet On并将项目添加到db。

稍后我找到了消息:

V/REALM_JNI:  --> Java_io_realm_internal_OsSharedRealm_nativeIsClosed -979144320
V/REALM_JNI:  --> Java_io_realm_internal_OsSharedRealm_nativeBeginTransaction -979144320
V/REALM_JNI:  --> Java_io_realm_internal_OsSharedRealm_nativeIsClosed -979144320
V/REALM_JNI:  --> Java_io_realm_internal_OsSharedRealm_nativeIsClosed -979144320
V/REALM_JNI:  --> Java_io_realm_internal_UncheckedRow_nativeGetIndex -979283168

但服务器端仍然没有更新

1 个答案:

答案 0 :(得分:0)

问题仅出现在4.3.0版本中,现在已在4.3.2中修复 谢谢