2016-11-17 97 views
0

我正在嘗試同步我的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) 
... 

回答

2

境界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);