解析服务器忽略 ACL

Parse Server ignores ACL

我的 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
    }
}

但不幸的是,它只有在我添加 public 对 ACL 的读取访问权限时才有效,这样它看起来像这样

"ACL" : {
    "*": {
        "read": true
    },
    "xXl3OIndCP": {
        "read": true,
        "write": true
    },
    "VPuRMZGhcv": {
        "write": true
    }
}

我认为这不是预期的行为,或者我错了吗?有人以前遇到过这个问题吗?

好吧,原来必须在 find() 函数中传递会话令牌,所以我不得不使用 result = await query.find({sessionToken : user.getSessionToken()}); 而不是 result = await query.find();