gpt4 book ai didi

Android:更新 ParseUsers 的字段

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:27:23 25 4
gpt4 key购买 nike

我正在使用 ParseUser 进行用户管理。有了用户名(唯一),我计划查询 User 类以识别用户,然后将新分数放入“分数”字段,就像排行榜一样。编码如下:

代码:

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();
}
});
}
}
});
}

情况:它指出 new FindCallback(){} 类型必须实现继承的抽象方法 FindCallback.done(List, ParseException)。我已经尝试过 FindCallback.done 并发现它不成功。

问题:

请问如何用给定的用户名更新用户的其他字段?谢谢!

最佳答案

根据解析文档所说,

默认情况下,ParseUser 类是 protected 。存储在 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();
}
});

请通过此链接 Reference

关于Android:更新 ParseUsers 的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30402118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com