【发布时间】:2015-08-19 07:24:39
【问题描述】:
我正在开发 android 应用程序,它将用户分数保存在 Parse 的结果表中。现在,如果我想通过云代码访问用户分数来计算排名,我无法得到它。我猜原因是ACL,它不是公开的。如果我手动将 ACL 设置为公共读写一行,我就可以获得该行的分数。因此,要使该等级代码正常工作,我必须手动将 ACL 设置为 public,这没有任何意义。请帮帮我。
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);
}
});
});
【问题讨论】:
标签: acl