0

我有一个名为 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 秒超时。这足以执行一两个快速查询,但如果您的数据库中有很多对象,或者执行许多保存/获取/查询调用,您最终可能会超过 3 秒的限制。如果您有很多需要发生的逻辑,而不是从客户端保存对象,调用处理所有这些更改的云代码函数,然后保存对象并返回新保存的对象,以便您可以设置您的客户端对象到返回的最新对象。

于 2015-10-16T18:10:08.617 回答
1

正如杰克 T 指出的那样,您将需要使用

var user = request.user

Parse.User.current()在云代码环境中不支持。

于 2015-10-16T17:33:23.257 回答