Firebase管理员:admin.auth()。删除(uid)无法在AVA test.after()中解析

时间:2018-05-20 23:27:36

标签: node.js firebase firebase-admin ava

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

我的代码:

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的非串行性质有关,也可能没有,但我不是百分百肯定。如果您需要更多信息,请告诉我。谢谢!

1 个答案:

答案 0 :(得分:0)

请改为尝试:

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

由于您正在使用forEach(),因此挂钩实际上并没有等待您的任何删除/用户删除完成,并且该过程可能会在它们执行之前退出。