我为NewsFeed对象提供了一个简单的Parse Cloud Code函数。对于这些NewsFeed对象,我设置了一个ACL,以便fromUser可以对其进行写入,而toUser可以对其进行读写。我尝试使用以下功能为每个用户获取这些对象:
Parse.Cloud.define("get_feed", async (request) => {
let user = request.user;
var query = new Parse.Query("NewsFeed");
query.equalTo("toUser", user);
query.include("fromUser");
query.descending("createdAt");
let result;
try {
result = await query.find();
} catch (error) {
throw error.message;
}
return result;
});
我希望我得到满足查询条件并具有以下ACL的所有对象:
"ACL" : {
"xXl3OIndCP": {
"read": true,
"write": true
},
"VPuRMZGhcv": {
"write": true
}
}
但是不幸的是,只有当我向ACL添加公共读取访问权限,使其看起来像这样时,它才起作用
"ACL" : {
"*": {
"read": true
},
"xXl3OIndCP": {
"read": true,
"write": true
},
"VPuRMZGhcv": {
"write": true
}
}
我不认为这是预期的行为,还是我错了?有人遇到过这个问题吗?
答案 0 :(得分:0)
好吧,事实证明一个人必须在find()函数中传递会话令牌,因此我不得不使用result = await query.find({sessionToken : user.getSessionToken()});
而不是result = await query.find();