Firebase 管理员:admin.auth().delete(uid) 未在 AVA test.after() 中解析

Firebase Admin: admin.auth().delete(uid) not resolving in AVA test.after()

有一个关于使用 AVA 进行 Firebase 测试的快速问题。当使用 test.after.finally() 和 Firebase Admin 在测试清理中删除用户帐户时,承诺不会解决或引发错误。很有可能我没有在这里做正确的事情,并且会喜欢一些输入。

我的代码:

test.after.always(async () => {
    internals.ids.forEach(async (id) => {
        await admin.database().ref(`users/${id}`).remove();
        await admin.auth().deleteUser(id);
    });
});

其中 internals.ids 是需要在 运行 所有测试结束时清理的 id 数组。

这可能与 AVA 的非串行性质有关,也可能无关,但我不能 100% 确定。如果您需要更多信息,请告诉我。谢谢!

试试这个:

for (const id of internals.ids) {
  await ...remove()
  await ...deleteUser(id)
}

因为您正在使用 forEach(),after 挂钩实际上并不等待您的任何删除/用户删除完成,并且该过程可能会在它们完成之前硬退出。