在领域中,为什么SyncUser.logInAsync()不输入onSuccess()或onError()?

时间:2019-02-12 20:21:50

标签: java object nullpointerexception realm-mobile-platform

我当前正在尝试登录以创建到领域的登录名,但是由于我的logInAsync没有输入onSuccess或onError方法,所以无法访问SyncUser。 onSuccess方法返回一个SyncUser,但这没有发生。我的代码是

    String authURL = "https://my-realm.us1a.cloud.realm.io";
    String email = "testemail@gmail.com";
    String password = "testPassword";
    SyncCredentials credentials = SyncCredentials.usernamePassword(email, password, true);
    RealmAsyncTask task = SyncUser.logInAsync(credentials, authURL, new SyncUser.Callback<SyncUser>() {
        @Override
        public void onSuccess(SyncUser result) {
            user = result;
        }

        @Override
        public void onError(ObjectServerError error) {
            System.out.println("failed");
        }
    });
    String url = "realms://unbranded-metal-bacon.us1a.cloud.realm.io/~/travelin";
    config = user.createConfiguration(url).build();

我在上面声明了一个私有的SyncUser用户。在最后一行,由于用户为空,因此我得到了空对象引用。我没有输入onSuccess或onError的原因是什么?

1 个答案:

答案 0 :(得分:0)

验证URL错误,必须为

String authURL = "https://my-realm.us1a.cloud.realm.io/auth";

此外,SyncUser.logInAsync()在后台运行,因此此行必须位于onSuccess()内,否则User将为null

config = user.createConfiguration(url).build();