Parse platform Parse Android:更新包含ParseUsers数组的ParseObject抛出UserCannotBeAlteredWithoutSessionError

Parse platform Parse Android:更新包含ParseUsers数组的ParseObject抛出UserCannotBeAlteredWithoutSessionError,parse-platform,Parse Platform,我正在开发Android应用程序 我有一个自定义类,它与两个parseuser和其他字段有关系。正如文档所建议的,我使用了一个数组(带有键“usersArray”)来存储两个用户的指针,因为我希望在查询自定义类时能够使用“include”来包含用户。我可以创建一个新对象并成功保存它 //My custom parse class: CustomObject customObject = new CustomObject(); ArrayList<ParseUser> users =

我正在开发Android应用程序

我有一个自定义类,它与两个parseuser和其他字段有关系。正如文档所建议的,我使用了一个数组(带有键“usersArray”)来存储两个用户的指针,因为我希望在查询自定义类时能够使用“include”来包含用户。我可以创建一个新对象并成功保存它

//My custom parse class:
CustomObject customObject = new CustomObject();
ArrayList<ParseUser> users = new ArrayList<ParseUser>();
users.add(ParseUser.getCurrentUser());
users.add(anotherUser);
customObject.put("usersArray", users);
//I also store other variable which i would like to update later
customObject.put("otherVariable",false); 
customObject.saveInBackground();
我可以看出这与我试图更新一个包含指向用户的指针的对象这一事实有某种关联。但是我不是在修改用户,我只是想更新CustomObject的一个字段


有什么办法可以解决这个问题吗?

可能很晚了,但是解析用户的ACL是公共读取和私有写入的,所以你应该对用户执行
操作。isAuthenticated()
检查它是否正确

如果为false,则使用用户登录并重试注意:如果不注销并重新登录,则无法同时编辑两个用户的信息


您可以做的另一件事是使用角色,并通过使用ACL定义管理员角色,ACL可以覆盖所有用户。

不使用角色的最简单方法是什么?我已经有了一个列名“accountType”,还有一个“admin”和“regular”值。
ParseQuery<CustomObject> query = CustomObject.getQuery();
query.whereEqualTo("usersArray", ParseUser.getCurrentUser());
query.whereEqualTo("usersArray", anotherUser);
query.include("usersArray");
query.findInBackground( .... );
CustomObject customObject = customObject.get(0); //From the query
customObject.put("otherVariable", true);
customObject.saveInBackground(); // EXCEPTION