0

列の 1 つにユーザー ポインターを格納する Roster というテーブルがあります。それが新しいときに保存方法の前にその列を設定しようとしています.これまでのところ私はこれを持っていますが、ユーザーIDを取得する方法がわかりません

Parse.Cloud.beforeSave("Roster",function(request,response){
  //Update roster with sender Id
  if (request.object.isNew()){
    var userPointer = /*NOT SURE HOW TO GET WHO SENT IT*/
    request.object.set("User",userPointer);
  }
   response.success(); 
});

何か案が?

4

2 に答える 2

4
var userPointer = request.user;

適切な方法です。Todd の回答はクライアント側では機能しますが、beforeSave トリガーが発生するクラウド コードでは機能しません。

ID 以外のユーザー情報にアクセスする必要がある場合は、オブジェクト全体がリクエストで送信されないため、最初にユーザーを取得する必要があります。

編集 - before/afterSave トリガーには 3 秒のタイムアウトがあることを追加したかっただけです。これは、簡単なクエリを 1 つまたは 2 つ実行するのに十分な時間ですが、データベースに多数のオブジェクトがある場合、または多数の保存/フェッチ/クエリ呼び出しを実行する場合は、3 秒の制限を超えてしまう可能性があります。必要なロジックが多数ある場合は、クライアントからオブジェクトを保存するのではなく、それらの変更をすべて処理するクラウド コード関数を呼び出してから、オブジェクトを保存し、新しく保存されたオブジェクトを返します。クライアント側のオブジェクトを、返された最新のオブジェクトに変換します。

于 2015-10-16T18:10:08.617 に答える
1

Jake Tが指摘したように、使用する必要があります

var user = request.user

Parse.User.current()クラウド コード環境ではサポートされていません。

于 2015-10-16T17:33:23.257 に答える