引用解析.后台作业中的用户

Referencing Parse.User in a background job

本文关键字:用户 后台作业 引用      更新时间:2023-09-26

我要做的是创建一个具有MatchCenterName属性的MComparisonArray对象,MCItems数组属性等于eBayResults数组,并使该对象的parent属性成为指向创建它的User对象的指针,这样每个User都有自己特定的MComparisonArray对象与他们的帐户相关联。

当我在下面尝试这样做时,它给了我一个错误,说明User没有定义,正如我所期望的那样。我不确定如何形成语法来告诉Parse使对象的父属性成为指向User的指针。

我知道,如果我想从iOS应用程序内做到这一点,我会做('parent', Parse.User.current()),但在后台工作中没有Parse.User.current这样的事情。

主承诺链:

   Parse.Cloud.job("MatchCenterBackground", function(request, status) {
      //code to setup usersQuery ...
      var usersQuery = new Parse.Query(Parse.User);
      return usersQuery.each(function (user) {
        return processUser(user).then(function(eBayResults){
          return matchCenterComparison(eBayResults);
        });
      }); 
    });

matchCenterComparison函数代码片段:

  var newMComparisonArray = new mComparisonArray();
  newMComparisonArray.set('Name', 'MatchCenter');
  newMComparisonArray.set('MCItems', eBayResults);
  newMComparisonArray.set('parent', Parse.User);
  // Save updated MComparisonArray  
  newMComparisonArray.save().then({
    success: function() {
      console.log('MComparisonArray successfully created!');
    },
    error: function() {
      console.log('nah no MComparisonArray saving for you bro:' + error);
    }
  });

用户位于外部作用域中,但没有将其传递给函数。

改变你的呼叫代码,像这样传递当前用户:

return matchCenterComparison(user, eBayResults);

更新你的函数定义,接受用户作为第一个参数:

function matchCenterComparison(parentUser, eBayResults) {
    // ...
}

然后使用该用户作为父用户:

newMComparisonArray.set('parent', parentUser);

添加主密钥是否有效?Parse.Cloud.useMasterKey()

Parse.Cloud.job("MatchCenterBackground", function(request, status) {
  //code to setup usersQuery ...
  Parse.Cloud.useMasterKey();
  var usersQuery = new Parse.Query(Parse.User);
  return usersQuery.each(function (user) {
    return processUser(user).then(function(eBayResults){
      return matchCenterComparison(eBayResults);
    });
  }); 
});