我有一个名为Roster的表,它将用户指针存储在其中一个列中。我正在尝试在保存方法之前将该列设置为new。所以我有这个但我不知道如何获取用户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();
});
有什么想法吗?
答案 0 :(得分:4)
var userPointer = request.user;
是正确的方法吗? Todd的答案适用于客户端,但不适用于发生beforeSave触发器的云代码。
如果您需要访问超出其ID的任何用户信息,则必须首先获取用户,因为整个对象未在请求中发送。
编辑 - 只想添加前/后触发触发器有3秒超时。这是足够的时间来执行一两个快速查询,但如果您的数据库中有很多对象,或执行许多保存/获取/查询调用,您最终可能会超过3秒的限制。如果您有很多需要发生的逻辑,而不是从客户端保存对象,请调用处理所有这些更改的云代码函数,然后保存对象并返回新保存的对象,以便您可以设置您的客户端对象返回到最新的对象。
答案 1 :(得分:1)
正如Jake T指出的那样,你需要使用
var user = request.user
云代码环境不支持 Parse.User.current()
。