Parse.com Добавить пользовательский указатель в класс перед сохранением

У меня есть таблица с именем Roster, где она хранит указатель пользователя в одном из столбцов. Я пытаюсь установить этот столбец перед сохранением метода, когда он новый. Пока у меня есть это, но я не уверен, как получить идентификатор пользователя

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(); 
});

Любая идея?

2 ответа

Решение
var userPointer = request.user;

Это правильный метод. Ответ Тодда работает на стороне клиента, но не на облачном коде, где происходят триггеры beforeSave.

Если вам нужно получить доступ к какой-либо информации пользователя за пределами его идентификатора, вам придется сначала получить пользователя, так как весь объект не отправлен в запросе.

Редактировать - просто хотел добавить, что триггеры до / после сохранения имеют 3-секундный тайм-аут. Этого времени достаточно, чтобы выполнить один или два быстрых запроса, но если в вашей базе данных много объектов или вы выполняете много вызовов сохранения / извлечения / запроса, вы можете в итоге превысить ограничение в 3 секунды. Если у вас есть много этой логики, которая должна появиться, а не сохранять объект от клиента, вызовите функцию облачного кода, которая обрабатывает все эти изменения, затем сохраняет объект и возвращает вновь сохраненный объект, чтобы вы могли установить Ваш клиентский объект к возвращенному актуальному объекту.

Как отметил Джейк Т, вам нужно будет использовать

var user = request.user

Parse.User.current() не поддерживается в среде облачного кода.

Другие вопросы по тегам