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 挂钩实际上并不等待您的任何删除/用户删除完成,并且该过程可能会在它们完成之前硬退出。
有一个关于使用 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 挂钩实际上并不等待您的任何删除/用户删除完成,并且该过程可能会在它们完成之前硬退出。