我正在尝试检索项目中的Firebase用户。我可以检索它们,但是主程序永无止境。我使用VS Code进行调试,或者使用npm run运行脚本,但是这两种方法都会卡住。在VS Code中,堆栈上没有任何东西...它永远不会停止
admin.auth()。listUsers返回具有属性 nextPageToken 和 users 数组
的 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();
阻止主程序结束的问题可能是什么?我应该找什么?谢谢
答案 0 :(得分:1)
要关闭脚本,您应该使用
await admin.app().delete();
只要有句柄,Node.js就会安静地保持运行,这实际上可以是任何东西-当然是网络套接字。
您也可以使用process.exit()
,但是正确关闭SDK是一个好习惯,而不是在未完成时突然退出。