如何使用解析云代码更新对象的属性

How to update a property of an object using Parse Cloud Code?

本文关键字:更新 对象 属性 代码 何使用      更新时间:2023-09-26

我的 Parse 数据库中的每个 Parse Installation对象实例都有一个指向特定用户的指针。我有一个为每个用户运行的后台作业,我想在后台作业的这一部分中执行的操作是将相应的用户Installationchannel属性设置为 ["yesPush"] ,用于推送通知目标目的。

我想这样做的方法是查询特定的Parse.Installation实例,然后设置其 channel 属性。然而,这似乎不起作用。我正在尝试遵循 Parse Cloud Code 文档中的准则,但它要么不是正确的用例,要么我没有正确遵循它。

法典:

var installationQuery = new Parse.Query(Parse.Installation);
installationQuery.equalTo('userId', parentUser);
installationQuery.find().then(function(results) {
  return Parse.Object.set('channels', ["yesPush"]);
});

我会这样做的方式如下:

// for every User
var userQuery = new Parse.Query(Parse.User);
userQuery.each(function(user) {
  var installationQuery = new Parse.Query(Parse.Installation);
  installationQuery.equalTo('userId', user);
  return installationQuery.first().then(function(installation) {
    installation.set('channels', ['yesPush']);
    return installation.save();
  });
}).then(function() {
  status.success();
}, function(error) {
  status.error(error.message);
});

each()函数是处理作业中大型数据集的方式。如果你在其中执行其他异步任务,你需要返回它们的承诺。

如果我们只期望一条记录,first()函数会更快、更容易。

我正在调用set() first()返回的实际installation对象。

我正在返回允许承诺链接的save()承诺。