我在保存云代码功能中的对象更改时遇到问题。无法使用用户ACL在Cloud代码中保存ParseObject
我有一个叫做Character的集合,里面有一条记录。 这个角色记录与公共阅读条目和私有写访问由特定的ParseUser(6MwfSLdAxd
)访问。
在Unity,我验证过的用户,然后我叫云代码功能如下:
ParseCloud.CallFunctionAsync<Character>("startBattle", null).ContinueWith(t =>
{
Debug.Log("I got here...");
Debug.Log(t.Result.ClassName);
});
在我的云代码功能,我抓住的第一个字符的集合(忽略检查,如果它属于这个用户,因为此刻只有一个,它属于这个用户 - 也只有一个用户)。
var Character = Parse.Object.extend("Character");
Parse.Cloud.define("startBattle", function (request, response) {
var user = request.user;
if (user == null)
{
return response.error("You must login before you can battle!");
}
var characterQuery = new Parse.Query(Character);
characterQuery.first()
.then(
function (character) {
character.set("name", "Cloud Code sucka");
character.save().then(function(character) {
return response.success(character);
});
},
function (error) {
return response.error("You must create a character before you can battle! " + error);
}
)
});
但是,我根本无法保存此字符的任何更改。我发现的所有文档和论坛帖子都表明,如果您在通过身份验证时调用Cloud Code函数,那么该函数应该具有与用户调用它相同的级别权限。
这段代码唯一的工作是如果我设置字符的ACL为公共写。
有没有人有任何想法,为什么这不会工作?
注:值得关注的是我可以在云代码功能是由身份验证的用户6MwfSLdAxd
称为我得到这个错误(如果我添加一个response.error调用)服务器日志中看到:
error: Failed running cloud function startBattle for user 6MwfSLdAxd with:
Input: {}
Error: {"code":141,"message":"Messed up: [object Object]"} functionName=startBattle, code=141, message=Messed up: [object Object], , user=6MwfSLdAxd
error: Error generating response. ParseError { code: 141, message: 'Messed up: [object Object]' } code=141, message=Messed up: [object Object]
[object Object]
[object Object]