首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Parse.com -来自另一个云函数的云函数调用使request.user为空

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

Stack Overflow用户
提问于 2015-08-03 17:21:52
回答 2查看 607关注 0票数 0

我已经编写了一个云函数("newUserLog"),我从iOS软件开发工具包中调用它,一切都正常工作。云函数大量使用"request.user“。

现在我做了另一个云函数("doStats"),在某些情况下,在该函数中,我需要调用"newUserLog“函数。

我用Parse.Cloud.run("newUserLog").then(function(logCreated){做这件事... });

但是在"newUserLog“函数中,request.user为null。解决此类问题的最佳实践是什么?我知道我可以传递request.user指针并再次获取它,但我担心它不太安全,我将不得不进行大量的重构。

有没有一种简单的方法将request.user从一个云函数转移到另一个云函数?

非常感谢或者

EN

回答 2

Stack Overflow用户

发布于 2015-08-03 19:21:11

如果可以的话,不要从一个云函数调用另一个云函数。相反,创建普通的JS函数来保存您的可重用逻辑,并向它们传递一组参数。这更容易管理,也更清楚地了解这些功能实际需要什么才能运行。

票数 0
EN

Stack Overflow用户

发布于 2015-08-04 06:34:51

将newUserLog代码更改为如下所示:

代码语言:javascript
复制
var user;
if( request.User )
{
    user = request.User;
}
else
{
    user = new Parse.User();
    user.id = request.params.userId;
}

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

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

代码语言:javascript
复制
Parse.Cloud.run("newUserLog", {userId:request.User.id});

代码语言:javascript
复制
var user = request.User;
Parse.Cloud.run("newUserLog", {userId:user.id});

也就是说,您可以考虑创建一个既可由doStats调用又可由newUserLog调用的非云代码函数,并将相关参数从您的任一云代码函数传递给它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31783718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档