を追加した後、私はGoogleのクラウドコンピューティングのUbuntuのVM上で新しいROSを解雇し、Xamarin.Androidプロジェクトを経由してオブジェクトを記述しようとしています:レルムオブジェクト・サーバは、空を示しアイテム
public class TestObject : RealmObject
{
public string TestString { get; set; }
public int TestInt { get; set; }
}
//new non-existent realm, I also tried a public realm -> realm://###.###.###.###/newrealm
var realmUrl = "realm://###.###.###.###/~/newrealm";
//preconfigured admin credentials
var creds = Credentials.UsernamePassword("[email protected]", "password", false);
var user = await User.LoginAsync(creds, new Uri("http://###.###.###.###:9080"));
var config = new SyncConfiguration(user, new Uri(realmUrl));
var realm = Realm.GetInstance(config);
//this event never fires
Session.Error += (sender, errorArgs) => { var ex = errorArgs.Exception; };
//left this in just to be sure there were no permissions issues
await user.ApplyPermissionsAsync(PermissionCondition.Default, realmUrl, AccessLevel.Write);
//this will contain objects on subsequent runs
var existing = realm.All<TestObject>().ToList();
//also tried realm.Write(() => { });
using (var trans = realm.BeginWrite())
{
var test = new TestObject();
test.TestString = "test";
test.TestInt = 99;
realm.Add(test);
trans.Commit();
};
その結果、新しいレルムはリモートROS上で正常に作成されますが、このコードを複数回実行した後でも、ダッシュボードとレルムブラウザによっては空のままです。私のコメントでは、ローカルのレルムにはリモートではなく書かれたオブジェクトが含まれていることがわかります。このコードが実行されると、サーバーログには多くのメッセージが表示されますが、警告やエラーはありません。私は何を逃したのですか?
'await realm.GetSession()。WaitForUploadAsync()'を追加できますか?完了すると、ローカルデータはRealm Object Serverと同期されます。ここにdocsがあります:https://realm.io/docs/xamarin/1.6.0/api/reference/Realms.Sync.Session.html#Realms_Sync_Session_WaitForUploadAsync –
@NikolaIrinchevこのコードはWaitForUploadAsyncを過ぎて進行していないようです。ブレークポイントはヒットせず、System.Diagnostic.Debug.WriteLine呼び出しは印刷されません。まだtry/catchブロックやSession.Errorにエラーはありません。私がこの呼び出しを置くと、領域に何かを書き込む前でもこの動作が発生します。アプリケーション出力:[モノラル] DllImportで検索: 'realm-wrappers'( 'librealm-wrappers.so')。 [Mono] 'realm_syncsession_wait'を検索しています。 [Mono]プロービング 'realm_syncsession_wait'。 [Mono] 'realm_syncsession_wait'として見つかりました。 [Mono] [0x96d92930]ワーカーがいない、タイムアウト?いいえ。 no – aweFalafelApps
うーん...別の質問では、あなたの 'realmUrl'はあなたが投稿したスニペットのポートが不足しているようです - これはあなたのアプリの場合ですか、それともコードを貼り付けるときの見落としですか?その場合、 'realm://###.###.###.###:9080 /〜/ newrealm'のようなポートが必要です –