Realm SyncConfiguration

Realm SyncConfiguration

问题描述:

我正在尝试同步我的Android手机上的Realm数据库和本地Realm Objectserver,类似于文档中的RealmsTasks示例。我正在使用此代码:Realm SyncConfiguration

String authURL = "http://localhost:9080/auth"; 
SyncCredentials myCredentials = SyncCredentials.usernamePassword(
     "...", "...", false); //user is in Realm database 

SyncUser.loginAsync(myCredentials, authURL, this); 
Log.i("TINGLE","credentials checked"); 

SyncConfiguration defaultConfig = new SyncConfiguration.Builder(
     currentUser(), 
     "http://localhost:9080/~/realmtingle").build(); 
Realm.setDefaultConfiguration(defaultConfig); 

但是,对SyncConfiguration.Builder的调用会发生异常。错误可能是路径“http://localhost:9080/~/realmtingle”,但一直未能找到有关路径应该在Realm文档中的指南。

唯一的例外是: ....

Caused by: java.lang.IllegalArgumentException: Invalid scheme: http 
at io.realm.SyncConfiguration$Builder.validateAndSet(SyncConfiguration.java:320) 
at io.realm.SyncConfiguration$Builder.<init>(SyncConfiguration.java:293) 
at io.realm.SyncConfiguration$Builder.<init>(SyncConfiguration.java:280) 
at dk.staunstrups.tingle.TingleActivity.setUpRealmSync(TingleActivity.java:74) 
at dk.staunstrups.tingle.TingleActivity.onCreate(TingleActivity.java:38) 
... 

境界URL应该使用realm:realms:。它只是使用http的认证。下面应该工作:

String authURL = "http://localhost:9080/auth"; 
SyncCredentials myCredentials = SyncCredentials.usernamePassword(
     "...", "...", false); //user is in Realm database 

SyncUser.loginAsync(myCredentials, authURL, this); 
Log.i("TINGLE","credentials checked"); 

SyncConfiguration defaultConfig = new SyncConfiguration.Builder(
     currentUser(), 
     "realm://localhost:9080/~/realmtingle").build(); 
Realm.setDefaultConfiguration(defaultConfig);