2017-02-16 5 views
0

私はパースのユーザーフィールドを更新しようとしていますし、機能はそれを途中で停止します。解析サーバークラウドコードの更新ユーザー

Parse.Cloud.define("modifyAdminStatus", function(request, response) { 

var userQuery = new Parse.Query(Parse.User); 
var isAdmin = request.params.adminStatus; 
console.log("isAdmin:" + isAdmin); 
userQuery.equalTo("username", request.params.username); 
userQuery.find({ useMasterKey: true, 
    success: function(user) { 
     console.log(user.length); 
     console.log("Got User") 
     console.log(user); 
     user.set("isAdmin", isAdmin); 
     console.log("Set Status"); 
     user.save(null, {useMasterKey: true, 
      success: function(user) { 
       response.success(); 
      }, 
      error: function(error) { 
       response.error(error.message); 
      } 
     }); 
    }, 
    error: function(error) { 
     response.error(error.message); 
    } 
}); 
}); 

私は取得のコードを実行したとき、私は、任意の構文エラーを取得いけません。

1 
Got User 
[ ParseUser { _objCount: 2, className: '_User', id: '2vigcitsl6' } ] 

しかし、私は管理者のステータスを設定しようとすると、コードを停止するようです。私はuseMasterKeyを使用してそれを実行しようとしましたが、何もしなかったので多分私は何かを見つけられず、useMasterKeyはどこに行かなければなりませんか?

答えて

1

答えは次のとおりです。

query.find({ 
... code here 
}); 

ではなく、一つのオブジェクトを取得し、あなたがそれで物事を設定することができますquery.first(または配列から一つのオブジェクトを選択)を使用して、配列を返します。

0

ユーザーを保存しようとすると、parseには2つのパラメータが必要です。 1つは変更を含むオブジェクトで、2つ目は保存オプションです。

だからあなたの場合には、単にあなたの保存あなたはパーミッションが許可した場合、それは今、useMasterKey題しParse.Userの列を作成してい道user.save (null, {useMasterKey:true, success...})

に変更します。

+0

私はその変更を行いましたが、それでもコンソールからParseUser行を通過することはありません。 – trever

+0

これは奇妙です。私が考えることができるのはisAdminフィールドがあなたが保存しようとしている別のタイプの値を期待していることだけです。 – EReid

+0

Hmmいいえ、isAdminはBoolです。私は真偽を設定しようとしています。確かにすべてを確認しました。 – trever

関連する問題