Firebase auth()。createUser-发出请求时出错:超过10000ms的超时时间

时间:2018-09-24 21:14:07

标签: 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]['InitialPwd'],
        disabled: false,
        emailVerified: false,
        displayName: newUsers[key]['name'],
    }).then((userRecord) => {
        return console.log('Success');
    }).catch(function(error) {
        console.log("Error:", error);
    });                    
});

错误是(对于每条记录):

  

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

我该如何解决?

1 个答案:

答案 0 :(得分:0)

云功能设置为在短时间内运行。如果您在Cloud Function中进行大量工作,则在完成之前可能会超时。我建议采取一些解决方案:

1。更改您的Cloud Functions超时。在Cloud console中,检查顶部以确保选择了当前项目,然后在中间找到函数列表。单击您的功能。您现在应该在函数详细信息中。点击“编辑”。 “保存”按钮的正上方是“更多”。选择“更多”,您将看到一个增加超时的选项。这可以修改功能保持有效的时间。

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,以便可以同时创建所有用户,而不是等一个用户完成后再开始下一个。