首页 > 解决方案 > 使用角度删除firebase auth中的用户

问题描述

在我的 angular 和 firebase 应用程序中,我有一个管理员,我希望管理员能够从 firebase auth 中删除用户,此时我有所有用户的电子邮件,我该如何通过电子邮件执行此操作?我只找到了这段代码,但它不起作用。

var user = firebase.auth().currentUser;

user.delete().then(function() {
  // User deleted.
}).catch(function(error) {
  // An error happened.
});

提前致谢。

标签: javascriptangularfirebasefirebase-authentication

解决方案


使用客户端 SDK(例如 JavaScript SDK)进行 Firebase 身份验证时,用户只能访问和删除自己的帐户。这是设计使然,因为其他任何事情都会带来重大的安全风险。

Firebase 确实提供了所谓的 Admin SDK,用于受信任的环境,例如您的开发机器、您控制的服务器或 Cloud Functions。由于这些 Admin SDK 在受信任的环境中运行,因此它们支持更广泛的操作集,例如根据用户的 UID删除停用项目中的任何用户。

但是 Admin SDK 只能在受信任的环境中使用。它们不能包含在客户端应用程序中,例如在您的 Angular 应用程序中。

这意味着您通常必须采取两步走的方法:

  1. 创建使用 Admin SDK 删除您指定的用户的自定义 API/服务器端端点(例如Callable Cloud Function )。在此代码中,您需要确保调用来自受信任的用户,例如通过硬编码允许进行此类调用的 UID。
  2. 然后从您的应用程序代码中调用此端点。

推荐阅读