我正在开发Android应用程序,它可以在Parse的结果表中保存用户得分。现在,如果我想访问用户的分数来通过云代码计算排名,我无法得到它。我想原因是ACL,这不是公开的。如果我手动将ACL设置为公共读取和写入行,我可以获得该行的分数。因此,为了使该等级代码有效,我必须手动将ACL设置为公共,这没有任何意义。请帮帮我。
result.put("name", user);
result.put("score", score);
result.put("mobile", out[2]);
ParseACL acl=new ParseACL();
acl.setPublicReadAccess(true);
result.saveEventually();
我尝试了这个但仍然无法正常工作。 :(
我的排名云代码如下:
Parse.Cloud.define("rank", function(request, response) {
var query = new Parse.Query("Result");
var score=request.params.score;
query.find({
success: function(results)
{
var tmp;
var a=[];
for (var i = 0; i < results.length; i++)
{
tmp=parseInt(results[i].get("score"),10);
a[i]=tmp;
}
a[i]=score;
a.sort(function(a, b){return b-a});
for(var k=0;k<a.length;k++)
{
if(a[k]==score)
break;
}
response.success(k+1);
},
error:function()
{
response.error("Error: " + error.code + " " + error.message);
}
});
});
答案 0 :(得分:2)
您忘了为用户设置acl
result.put("name", user);
result.put("score", score);
result.put("mobile", out[2]);
ParseACL acl=new ParseACL();
acl.setPublicReadAccess(true);
result.setACL(acl); /*updated here*/
result.saveEventually();