在android中使用解析时,当前用户数据未正确更新

时间:2016-03-24 12:58:29

标签: android parse-platform

更新当前用户唯一字段时,未从解析中获取正确的异常消息。 如果我使用现有用户名更新用户名并使用解析发送更新请求(保存)它正确显示。现在我重新设置用户名并给出现有的电子邮件和更新,它返回用户名存在异常消息而不是返回电子邮件存在消息。

public void updateUserData(UserModel userModel) throws ParseException {       
 ParseUser user = ParseUser.getCurrentUser();
    if (user != null && userModel != null){
        if(userModel.getFirstName() != null) {
            user.put(Constants.FIRST_NAME, userModel.getFirstName());
        }
        if(userModel.getLastName() != null) {
            user.put(Constants.LAST_NAME, userModel.getLastName());
        }
        if(userModel.getUsername() != null) {
            user.setUsername(userModel.getUsername());
        }

        if(userModel.getEmail() != null) {
            user.setEmail(userModel.getEmail());
        }

        if (userModel.getPassword() != null) {
            user.setPassword(userModel.getPassword());
        }
        if (userModel.getAvatar() != null) {
            ParseFile file = new ParseFile(System.currentTimeMillis() + ".jpg", userModel.getAvatar());
            file.save();
            user.put("imageFile", file);
        }
        user.save();
    }
}

提前致谢, 如果有任何问题,请发布。

1 个答案:

答案 0 :(得分:0)

更改此代码。

if (userModel.getAvatar() != null) {
            final ParseFile file = new ParseFile(System.currentTimeMillis() + ".jpg", userModel.getAvatar());
            file.saveInBackground(new SaveCallback() {

                @Override
                public void done(ParseException e) {
                    // TODO Auto-generated method stub
                    if (e == null) {
                        // success
                        user.put("imageFile", file);

                        // exit from one thered
                        UpdateDatabase(user);
                    } else {
                        // fail
                        e.getMessage();
                    }
                }
            });

        }

然后这个代码副本&糊。

    protected void UpdateDatabase(ParseUser user) {
    // TODO Auto-generated method stub

    // before update parse table then set user permisson like read & write
    user.saveInBackground(new SaveCallback() {

        @Override
        public void done(ParseException e) {
            // TODO Auto-generated method stub
            if (e == null) {
                // success
            } else {
                // fail
                e.getMessage();
            }
        }
    });
}