2016-11-17 6 views
0

Androidの電話機とRealmオブジェクトサーバのRealmデータベースを、ドキュメントのRealmsTasksの例と同様に同期しようとしています。私はこのコードを使用しています:レルム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"である可能性がありますが、レルムのドキュメントのパスのガイドラインを見つけることができませんでした。

例外は次のとおりです。 ....

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