添加项目后,Realm Object Server显示为空

时间:2017-08-29 17:58:54

标签: xamarin xamarin.android realm realm-mobile-platform realm-object-server

我在Google Cloud Compute 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("admin@gmail.com", "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上成功创建了新领域,但是即使在多次运行此代码之后,它仍然根据仪表板和领域浏览器保持为空。您在我的评论中注意到本地领域确实包含书面对象,而不是远程。执行此代码时,服务器日志会显示大量消息,但没有警告或错误。我错过了什么?

1 个答案:

答案 0 :(得分:1)

感谢Nikola弄清楚我错过了域名网址上的端口号。添加后,一切似乎都正常工作。

var realmUrl = "realm://###.###.###.###:9080/~/newrealm";

奇怪的是,没有任何类型的错误被抛出,对象只是默默地没有被写入远程领域。