0

我是 android 新手,我正在尝试开发一个 Uber Clone 应用程序。我正在将用户注册为 Parse 服务器上的匿名用户。我有两个用户选项,可以选择司机选项或骑手选项。当用户选择这两个选项之一时,我想将此数据(无论用户是骑手还是司机)以带有键“riderORdriver”的字符串的形式保存到 Parse User 对象。这就是我试图将字符串保存到 Parse User 对象的方式 -

String userType = "rider";
if(switchButton.isChecked())
{
    userType = "driver";
}

ParseQuery<ParseUser> parseQuery = ParseUser.getQuery();

parseQuery.whereEqualTo("username", ParseUser.getCurrentUser().getUsername());

final String finalUserType = userType;
parseQuery.findInBackground(new FindCallback<ParseUser>() {
    @Override
    public void done(List<ParseUser> objects, ParseException e) {
        if(e == null && objects.size() > 0)
        {
            ParseUser user = objects.get(0);
            user.put("riderORdriver", finalUserType);
            user.saveInBackground();
        }
    }
});
                

当前用户始终是匿名用户,因为我已关闭启用自动用户,并且我正在使用 ParseAnonymousUtils 登录匿名用户。新的 Anonymous 用户出现在 Parse Dashboard 的 User 类中,但其中没有出现“riderORdriver”列。我也尝试过这个更简单的版本 -

ParseUser User = ParseUser.getCurrentUser();
User.put("riderORdriver", userType);
User.saveInBackground(new SaveCallback() {
    @Override
    public void done(ParseException e) {
        if(e == null)
        {
            Log.i("Status", "User Updated");
        }
        else
        {
            Log.i("Status", "User not updated");
        }
        //none of these two messages is being printed to the log
    }
});

但这似乎也不起作用。有人可以指出发生这种情况的原因吗?

编辑我在按钮的 OnClick 函数中编写此代码。这可能是原因吗?

4

1 回答 1

0

我仍然不知道问题出在哪里,但是单击“构建”部分中的“清理项目”为我解决了问题。该请求现在正在使用“riderORdriver”字符串进行更新。我已经尝试过一次清理项目,但都是徒劳的。这一次,它奏效了。也许这是解决这个问题的最佳选择。

于 2020-07-27T20:25:06.073 回答