pea*_*mak 13 android android-activity parse-platform
我正在使用ParseUser进行用户管理.拥有用户名(唯一),我计划查询User类以识别用户,然后将新分数添加到"score"字段,就像排行榜一样.编码如下:
public void update_user_score(String username, int original_score, int add)
{
final int new_score = original_score + add;
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereEqualTo("username", username);
query.setLimit(1);
query.findInBackground(new FindCallback()
{
public void done(final ParseObject object, ParseException e)
{
if (e == null)
{
object.saveInBackground(new SaveCallback()
{
public void done(ParseException e)
{
object.put("score", new_score);
object.saveInBackground();
onBackPressed();
}
});
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
情况:它说明了这一点The type new FindCallback(){} must implement the inherited abstract method FindCallback.done(List, ParseException).我试过了FindCallback.done,发现它不成功.
我想问一下如何使用给定的用户名更新用户的其他字段?谢谢!
小智 4
根据解析文档所述,
默认情况下,ParseUser 类是受保护的。存储在 ParseUser 中的数据只能由该用户修改。默认情况下,任何客户端仍然可以读取数据。因此,一些 ParseUser 对象经过身份验证并且可以修改,而其他对象是只读的。
具体来说,除非使用经过身份验证的方法(例如登录或注册)获取 ParseUser,否则您无法调用任何保存或删除类型的方法。这确保只有用户才能更改自己的数据。
下图说明了此安全策略:
ParseUser user = ParseUser.logIn("my_username", "my_password");
user.setUsername("my_new_username"); // attempt to change username
user.saveInBackground(); // This succeeds, since the user was authenticated on the device
// Get the user from a non-authenticated manner
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.getInBackground(user.getObjectId(), new GetCallback<ParseUser>() {
public void done(ParseUser object, ParseException e) {
object.setUsername("another_username");
// This will throw an exception, since the ParseUser is not authenticated
object.saveInBackground();
}
});
Run Code Online (Sandbox Code Playgroud)
请通过此链接参考
| 归档时间: |
|
| 查看次数: |
1320 次 |
| 最近记录: |