我正在尝试检索项目中的Firebase用户。我可以检索它们,但是主程序永远不会结束。我使用VS Code进行调试,或者使用npm run运行脚本,但是这两种方法都会卡住。在VS Code中,堆栈上没有任何东西...它永远不会停止
**用户功能(返回用户没有问题)
admin.auth()。listUsers返回具有属性nextPageToken和用户数组的listUsersResult对象
const BATCH_SIZE = 2;
const listAllUsers = async (nextPageToken = undefined) => {
let listUsersResult = await admin.auth().listUsers(BATCH_SIZE, nextPageToken);
if (listUsersResult.pageToken) {
return listUsersResult.users.concat(await listAllUsers(listUsersResult.pageToken));
} else {
return listUsersResult.users;
}
};
主例程(这是被卡住的例程)
const uploadUsersMain = async () => {
try {
// if I comment out this call, then there is no problem
let firestoreUsers = await listAllUsers();
} catch(error) {
log.error(`Unable to retrieve users ${error}`)
}
finally {
// do stuff
}
}
uploadUsersMain();
有什么问题可以阻止主程序结束?我应该找什么?谢谢
最佳答案
要关闭脚本,您应该使用
await admin.app().delete();
只要有句柄(实际上可以是任何东西),Node.js就会安静地保持运行-当然是网络套接字。
您也可以使用
process.exit()
,但这是正确关闭SDK的好习惯,而不是在未完成时突然退出。