我正在尝试检索项目中的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的好习惯,而不是在未完成时突然退出。

09-17 15:10