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()
не поддерживается в среде облачного кода.