在 Cloud Code 中,如何查询与一组用户匹配的安装?

From Cloud Code, how can I query for Installations matching a set of Users?

我正在使用独立的解析服务器,试图向多个安装发送推送通知。

Parse Server 不允许我从 Cloud Code 查询安装 collection,返回以下错误:

Error handling request: ParseError {
  code: 119,
  message: 'Clients aren\'t allowed to perform the find operation on the installation collection.' } code=119, message=Clients aren't allowed to perform the find operation on the installation collection.

Cloud Code 中的查询如下所示:

var pushQuery = new Parse.Query(Parse.Installation);
pushQuery.containedIn('user', users);
pushQuery.find({ ...

获取一组用户的安装列表并向所有用户发送推送的正确方法是什么?

我还尝试通过在查询前立即调用 Parse.Cloud.useMasterKey(); 让 Cloud Code 使用 masterKey。没有效果,主密钥不包含在查询请求中headers。

这是因为 Parse.Cloud.useMasterKey() 自 Parse-server 版本 2.3.0 起已弃用。您现在需要在查询中使用 useMasterKey: true

例如:

var pushQuery = new Parse.Query(Parse.Installation);
pushQuery.containedIn('user', users);
pushQuery.find({useMasterKey: true }).then(function(results) {