我已经编写了一个云功能(" newUserLog"),我从iOS SDK调用,一切正常。云功能大量使用" request.user"。
现在我已经创建了另一个云功能(" doStats"),在某些情况下,我需要调用" newUserLog"功能
我这样做 Parse.Cloud.run(" newUserLog&#34)。然后(函数(logCreated){ ... });
但是" newUserLog" function,request.user为null。 解决此类问题的最佳做法是什么?我知道我可以传递request.user指针并再次获取它,但我担心它不那么安全,我不得不做很多重构。
是否有一种简单的方法将request.user从一个云功能转移到另一个云功能?
非常感谢 或
答案 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调用的函数,该函数不是云代码函数,并从您的任何一个云代码函数中将相关参数传递给它。