将所有 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();
好吧...代码将使用至少与用户数量成线性关系的内存量。因此,如果您对用户数量没有限制,您也将无法预测它需要的内存量。
我突然想到的问题是为什么您需要所有用户的列表?您打算在整个列表中做什么,而您不能在单个用户页面上做什么?
这不是一个问题更多关于我写的代码审查。
我尝试将 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();
好吧...代码将使用至少与用户数量成线性关系的内存量。因此,如果您对用户数量没有限制,您也将无法预测它需要的内存量。
我突然想到的问题是为什么您需要所有用户的列表?您打算在整个列表中做什么,而您不能在单个用户页面上做什么?