将所有 firebase 用户列为承诺的代码审查

Code review for Listing all firebase users as a promise

这不是一个问题更多关于我写的代码审查。

我尝试将 firebase 列表所有用户代码转换为 promise 函数。我想一次检索所有用户的数组,而不是使用函数回调。

谁能告诉我这是否会因为使用太多内存或其他问题而中断。

我会将用户批处理参数保留为 1,以表明异步似乎确实有效。

const userArray = [];

// list all users
const listAllUsers = function (nextPageToken){
  return new Promise((resolve, reject) => {
    admin
      .auth()
      .listUsers(1, nextPageToken)
      .then(async(listUsersResult) => {
        listUsersResult.users.forEach((userRecord) => {
          console.log('user', userRecord.email);
          userArray.push(userRecord.email);
        });
        if (listUsersResult.pageToken) {
          console.log("There is a next page token")
          await listAllUsers(listUsersResult.pageToken);
          resolve();
        } else {
          resolve();
        }
      })
      .catch((error) => {
        console.log('Error listing users:', error);
      });
  });
};

// Start listing users from the beginning, 1000 at a time.
await listAllUsers();
  

好吧...代码将使用至少与用户数量成线性关系的内存量。因此,如果您对用户数量没有限制,您也将无法预测它需要的内存量。

我突然想到的问题是为什么您需要所有用户的列表?您打算在整个列表中做什么,而您不能在单个用户页面上做什么?