Firebase auth().createUser-发出请求时出错:超时10000毫秒

Firebase auth().createUser-发出请求时出错:超时10000毫秒,firebase,firebase-authentication,Firebase,Firebase Authentication,我试图通过Firebase中的一个特定函数包含一个用户列表(超过50个)。这是我的密码: Object.keys(newUsers).forEach((key) => { console.log(newUsers[key]['name']); admin.auth().createUser({ uid: key, email: newUsers[key]['email'] password: newUsers[key]['In

我试图通过Firebase中的一个特定函数包含一个用户列表(超过50个)。这是我的密码:

Object.keys(newUsers).forEach((key) => {
    console.log(newUsers[key]['name']);
    admin.auth().createUser({
        uid: key,
        email: newUsers[key]['email']
        password: newUsers[key]['InitialPwd'],
        disabled: false,
        emailVerified: false,
        displayName: newUsers[key]['name'],
    }).then((userRecord) => {
        return console.log('Success');
    }).catch(function(error) {
        console.log("Error:", error);
    });                    
});
错误为(对于每条记录):

{错误:发出请求时出错:超过10000毫秒的超时时间。 在FirebaseAppError.FirebaseError[作为构造函数](/srv/node_modules/firebase admin/lib/utils/error.js:39:28) 在firebase apperror.PrefixedFirebaseError[作为构造函数](/srv/node_modules/firebase admin/lib/utils/error.js:85:28) 在新FirebaseAppError(/srv/node_modules/firebase admin/lib/utils/error.js:119:28) at/srv/node_modules/firebase admin/lib/utils/api request.js:117:23 在 在进程中。_tickDomainCallback(internal/process/next_tick.js:228:7)errorInfo:{code: “应用程序/网络超时”, 消息:“发出请求时出错:超过10000毫秒的超时时间。”},codePrefix:“应用程序”}


如何解决此问题?

云函数设置为短期运行。如果您正在云功能中执行大量工作,则可能会在完成之前超时。我建议有几种解决方案:

1.更改您的云功能超时。在上面,检查顶部,以确定当前项目是否被选中,然后在中间,你会找到你的函数列表。点击你的功能。您现在应该了解函数详细信息。单击“编辑”。“保存”按钮正上方是“更多”。选择“更多”,您将看到一个增加超时的选项。这可以修改函数保持活动状态的时间

2.更改批大小,以便一次创建更少的用户

3.确保你的承诺如预期的那样有效。如果不将调用返回到
createUser
,则无法访问生成的
UserRecord

Object.keys(newUsers).forEach((key) => {
    console.log(newUsers[key]['name']);
    return admin.auth().createUser({
        uid: key,
        email: newUsers[key]['email']
        password: newUsers[key]['InitialPwd'],
        disabled: false,
        emailVerified: false,
        displayName: newUsers[key]['name'],
     }).then((userRecord) => {
        return console.log('Success');
     }).catch(function(error) {
        console.log("Error:", error);
     });                    
  });

4.这一点我可能不正确,但用户似乎是一个接一个地创建的,而不是同时创建的。这可能是一个很好的案例,可以研究使用Promise.all,以便同时创建所有用户,而不是等待一个用户完成后再开始下一个用户。

如果只创建一个用户,是否会出现此问题?您好,@Jen,它不会出现在一个或短列表中。在一些测试中,我发现当我有超过50个新用户时会发生这种情况。好的,这是很好的信息。你是在云函数中运行这个吗?是的@JenPerson。当用户上传CSV文件以导入新客户端时,此云功能启动。有必要创建一个具有“初始密码”的用户,不再有这样的事情
更改您的云功能超时
@ggDeGreat是的,有。我刚查过。