如何从Firebase身份验证中删除用户帐户

如何从Firebase身份验证中删除用户帐户

我们正在进行Firebase系列的工作,Firebase提供了各种函数供我们的应用程序使用,如数据库、身份验证、托管等。在本文中,我们将看到如何从Firebase身份验证中删除用户帐户。

Firebase有一个删除函数,可以从Firebase身份验证控制台中删除用户帐户。如果您在Web应用程序中使用Firebase身份验证,那么您也需要根据用户的需求提供用户帐户删除选项。我们可以通过调用Firebase的delete方法来简单地实现这一点。

先决条件: 在开始之前,我们需要为Web应用程序设置Firebase。您可以参考GFG文章“在Web上集成Firebase”来实现Firebase和使用电子邮件和密码进行用户身份验证。

方法:

删除用户: 您可以使用Firebase身份验证的delete方法删除用户帐户。首先,我们将获取当前登录的用户,然后将其删除。

// Current signed-in user to delete
const user = firebase.auth().currentUser; 
user.delete().then(() => {
    // User deleted.
}).catch((error) => {
    // An error occurred
    // ...
});

我们将在用户端创建两个按钮。第一个按钮用于用户登录,第二个按钮用于从验证控制台删除用户。

逐步实施: 下面是在Web和Firebase中删除用户的实施。

步骤1: 要为您的Web应用程序添加Firebase,您可以参考此文章。

项目结构: 项目结构将如下所示。

如何从Firebase身份验证中删除用户帐户

步骤2: 创建完Web应用程序之后,使用以下命令安装firebase模块。

npm install firebase@8.3.1 --save

步骤3: 前往您的 firebase控制台 创建一个新项目并复制您的凭证。

const firebaseConfig = {
    apiKey: "your api key",
    authDomain: "your credentials",
    projectId: "your credentials",
    storageBucket: "your credentials",
    messagingSenderId: "your credentials",
    appId: "your credentials"
};

注意: 这些凭证是机密的。

步骤4:创建HTML文件。

index.html index文件包含按钮,用于用户登录和删除用户账户,并调用相应的函数执行操作。

为什么需要登录? 如果我们要删除用户账户,那么用户需要重新登录吗?一些安全敏感的操作,比如删除账户、设置主电子邮件地址和更改密码,需要用户最近进行过登录。如果您执行其中一个操作,而用户登录太久时间,操作将失败并显示错误。

HTML

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible"
          content="IE=edge">
    <meta name="viewport"
          content="width=device-width, initial-scale=1.0">
    <title>samplefirebaseforweb</title>
    <script src=
"https://www.gstatic.com/firebasejs/3.7.4/firebase.js"></script>
</head>
 
<body>
 
    <script src="/app.js"></script>
    <button onclick="signIn()">signIn</button> 
    <div>
        <button onclick="DeleteUser()">
              Delete User Account
          </button>
    </div>
</body>
 
</html>

步骤5:创建Javascript文件。

script.js: 脚本文件包含了两个函数signIn和DeleteUser的定义。在DeleteUser中,firebase的delete方法执行从firebase控制台Authentication中永久删除用户账号的操作。

注意: 在删除账号之前,用户必须最近登录,否则会引发错误。

Javascript

const firebaseConfig = {
    // Firebase Application configure code
};
 
// Initialize Firebase
const app = firebase.initializeApp(firebaseConfig);
 
var email = "ms471841@gmail.com";
var password = "12345678";
 
function signIn() {
    firebase
        .auth()
        .signInWithEmailAndPassword(email, password)
        .then((userCredential) => {
            // Signed in
            var user = userCredential.user;
            console.log("Sign In SuccessFul!");
            // ...
        })
        .catch((error) => {
            var errorCode = error.code;
            var errorMessage = error.message;
        });
}
 
function DeleteUser() {
    const user = firebase.auth().currentUser;
 
    user
        .delete()
        .then(() => {
            // User deleted.
            console.log("User Account Deleted Successful");
        })
        .catch((error) => {
            // An error occurred
            // ...
        });
}

输出: 输出窗口包含两个浏览器屏幕,左边是实时服务器,右边是Firebase控制台。

如何从Firebase身份验证中删除用户帐户

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程