从一个活动调用时,云代码request.user为null,但不是前一个活动

时间:2015-07-29 14:08:49

标签: java android parse-platform cloud-code

当尝试在cloude-code函数中获取用户对象时,request.user对象为null,但仅在从某个活动调用时才为null。该应用程序包含三个活动:Login,main和调用该功能的活动。如果我从主活动中调用它,request.user会按预期向用户提供,但从第三个活动调用时它为null。

登录代码:成功时开始主要活动。

ParseUser.logInInBackground(uName, uPassword, new LogInCallback() {
    @Override
    public void done(ParseUser parseUser, ParseException e) {
        if (parseUser != null) {
            Toast.makeText(getApplicationContext(), "Success!", Toast.LENGTH_LONG).show();
            if (ParseUser.getCurrentUser().isAuthenticated()) {
                Intent intent = new Intent(LoginActivity.this, MainActivity.class);
                startActivity(intent);
                finish();
            }
        }
    }
});

此代码运行正常,我们已登录并向前发送。 主要活动代码太长了,无法在此发布,相关部分只是“statActivity(intent);”,但如果有人好奇:Pastebin

调用auth函数的函数。当从main运行时,request.user成为用户,当从第三个活动运行时(仅包含此函数和基本的android东西),它突然变为空。

public void onNewRandomGameClick(View v) {
    ParseCloud.callFunctionInBackground("testUserAuth", new HashMap<String, Object>());
    finish();
}

最后,服务器端代码。同样,来自一个活动而不是另一个活动。

Parse.Cloud.define("testUserAuth", function(request, response) {
    console.log("Testing user authencation...");
    if(request.user){
        response.success();
        console.log("We are authorized");
    } else {
        response.error("Authentication failed");
    }
});

0 个答案:

没有答案