Parse.com - 来自另一个云函数的云函数调用使request.user为null

时间:2015-08-03 09:21:52

标签: parse-platform cloud-code

我已经编写了一个云功能(" newUserLog"),我从iOS SDK调用,一切正常。云功能大量使用" request.user"。

现在我已经创建了另一个云功能(" doStats"),在某些情况下,我需要调用" newUserLog"功能

我这样做 Parse.Cloud.run(" newUserLog&#34)。然后(函数(logCreated){ ... });

但是" newUserLog" function,request.user为null。 解决此类问题的最佳做法是什么?我知道我可以传递request.user指针并再次获取它,但我担心它不那么安全,我不得不做很多重构。

是否有一种简单的方法将request.user从一个云功能转移到另一个云功能?

非常感谢 或

2 个答案:

答案 0 :(得分:0)

如果可以帮助,请不要从另一个云中调用一个云功能。相反,创建普通的JS函数来保存可重用的逻辑并向它们传递一组参数。这更容易管理,更清楚地了解这些功能为了操作而实际需要的东西。

答案 1 :(得分:0)

将newUserLog代码更改为:

var user;
if( request.User )
{
    user = request.User;
}
else
{
    user = new Parse.User();
    user.id = request.params.userId;
}

在这两种情况下,您基本上都拥有用户的shell,并且如果您想要其余数据,则需要执行提取。

更改doStats方法,将userId作为参数传递给其他云代码函数:

Parse.Cloud.run("newUserLog", {userId:request.User.id});

var user = request.User;
Parse.Cloud.run("newUserLog", {userId:user.id});

话虽这么说,您可以考虑创建一个由doStats和newUserLog调用的函数,该函数不是云代码函数,并从您的任何一个云代码函数中将相关参数传递给它。