9

パース クラウド コードで問題に直面しています。以下は、私のゲームスコア表のスコアと変更日を更新しています。しかし、それは機能していません。私は自分のWebコードで同じことをしていますが、うまく機能しています。私はここで何か悪いことをしていますか?

'use strict';
var GameScore = Parse.Object.extend('GameScore');
Parse.Cloud.define('editScore', function(req, res) {
  var query = new Parse.Query(GameScore);
  query.get(req.params.objectId, {
    success: function(gameScore) {
      gameScore.set('score', req.params.score);
      gameScore.set('date', req.params.date);
      gameScore.save(null);
      gameScore.fetch(myCallback);
    },
    error: function(err) {
      return res.error(err);
    }
  });
});

もしそうなら、私がそれを機能させることができるように私を助けてください。

4

3 に答える 3

1
var GameScore = Parse.Object.extend('GameScore');
Parse.Cloud.define('editScore', function(req, res) {
  Parse.Cloud.useMasterKey();
      var query = new Parse.Query(GameScore);
      query.get(req.params.objectId, {
        success: function(gameScore) {
          gameScore.set('score', req.params.score);
          gameScore.set('date', req.params.date);
          gameScore.save().then(function() {
                  gameScore.fetch(callback);
                });
        },
        error: function(err) {
          return res.error(err);
        }
      });
    });

マスター キーを使用して acl をオーバーライドします。then promise メソッドを使用して、コールバック関数を呼び出しています。そうしないと、古いデータを取得する可能性があります。

于 2014-08-13T12:38:36.167 に答える
1

関数内に追加Parse.Cloud.useMasterKey();して、問題を引き起こす可能性のある ACL 制限をバイパスしてみてください。例:

var GameScore = Parse.Object.extend('GameScore');
Parse.Cloud.define('editScore', function(req, res) {

  // use Master Key to bypass ACL
  Parse.Cloud.useMasterKey();

  var query = new Parse.Query(GameScore);
  query.get(req.params.objectId, {
    success: function(gameScore) {
      gameScore.set('score', req.params.score);
      gameScore.set('date', req.params.date);
      gameScore.save(null);
      gameScore.fetch(myCallback);
    },
    error: function(err) {
      return res.error(err);
    }
  });
});
于 2014-08-12T12:12:21.237 に答える