【问题标题】:Delete an user in firebase auth with angular使用角度删除firebase auth中的用户
【发布时间】:2020-09-02 03:50:03
【问题描述】:

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

var user = firebase.auth().currentUser;

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

提前致谢。

【问题讨论】:

    标签: javascript angular firebase firebase-authentication


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 朋友您好,原则上非常感谢您的回答,我从来没有做过这个手术,有点迷茫,能否附上我自己的例子?问候。
    • 我在回答中包含了所有相关文档的链接。
    猜你喜欢
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2019-12-06
    • 2017-11-21
    • 2022-01-21
    • 1970-01-01
    • 2021-02-26
    • 2020-10-29
    相关资源
    最近更新 更多