我正在尝试更新ParseUser中的字段,我正在使用外部库来使用Parse和Java。 即使我得到ParseUser对象并且可以使用getEmail(),getUsername()之类的函数,setEmail(“random@gmail.com”),put(“friends”,list),setUsername(“bom”)等函数也不会不行。
关于如何解决这个问题的任何想法?
void updateParse(int id){
ParseQuery<ParseUser> query = ParseQuery.getQuery(ParseUser.class);
query.whereEqualTo("alikeId", 2);
query.findInBackground(new FindCallback<ParseUser>() {
public void done(List<ParseUser> results, parse4p.ParseException e) {
if ( results == null) {
println("Name not found within the class");
} else {
ParseUser temp = results.get(0);
temp.setEmail("friends@net.com");
}
}
}
);
}
答案 0 :(得分:2)
您的代码的第一个问题是即使您设置了电子邮件,也从未实际运行temp.saveInBackground(),因此解析数据库不会被更新。
更重要的是,Parse在其User类上具有默认安全性,只允许您编辑当前登录用户的值。因此,即使您在当前上下文中使用temp.saveInBackground(),它也不会起作用,因为User类的安全性不允许它。
答案 1 :(得分:0)
您可以尝试以下示例代码来更新parseUser:
ParseUser user = ParseUser.getCurrentUser();
user.increment("logins");
user.saveInBackground(new SaveCallback() {
public void done(ParseException e) {
if (e != null) {
// Saved successfully
} else {
// ParseException
}
}
});