首页 > 解决方案 > Firebase 跟踪以前插入的记录

问题描述

我使用简单的 javascript 创建了一个链接 firebase 和 HTML 的示例应用程序。

即使清除了整个数据库,我也无法使用以前使用过的电子邮件进行条目

Firebase 是否保留先前插入的记录的记录?

html代码

<!DOCTYPE html>
<html>

<head>
    <script src="https://www.gstatic.com/firebasejs/5.8.5/firebase.js"></script>
    <script src="./script.js"></script>
    <title>Test</title>
</head>

<body onload="load()">
    <h1 style="color:red">Welcome</h1>
    <button onclick="Login()">Login</button>
    <button onclick="create()">Create</button>
    <button onclick="getUserDetails()">user details</button>
    <button onclick="signOut()">Sign out</button>

    Email :
    <input type="email" name="email" id="email">
    Password:
    <input type="password" name="pass" id="pass">
</body>

</html>

javascript

function load() {
    var config = {
<firebase config>
    };
    firebase.initializeApp(config);
}

function Login() {
    var data = {
        email: document.getElementById("email").value,
        password: document.getElementById("pass").value
    };
                console.log(data)
    firebase.auth().signInWithEmailAndPassword(data.email, data.password)
        .then(function (authData) {
            console.log(authData)
        })
        .catch(function (error) {
            console.log("Login Failed!", error);

        });
}
function create() {
    var data = {
        email: document.getElementById("email").value,
        password: document.getElementById("pass").value
    };
    console.log(data)
    firebase.auth()
        .createUserWithEmailAndPassword(data.email, data.password)
        .then(function (user) {
            writeUserData("123", "test", data.email, data.password)
        })
        .catch(function (error) {
            console.log("creation Failed!", error);

        });
}

function writeUserData(userId, name, email, pwd) {
    firebase.database().ref('users/' + userId).set({
        username: name,
        email: email,
        test: pwd
    });
}

在控制台中,我收到成功消息,即成功登录,即使数据库中没有数据,我也会从 firebase 获得令牌作为回报。

在从控制台清除/删除数据后尝试创建具有相同电子邮件 ID 的新用户时,我得到用户已存在错误

请告诉我这种行为的原因。

浏览器控制台

应用程序控制台

Firebase 控制台

Firebase 控制台

标签: javascriptfirebasefirebase-realtime-databasefirebase-authentication

解决方案


错误消息来自 Firebase 身份验证,表明该电子邮件地址已被另一个帐户使用。您正在从 Firebase 实时数据库中删除数据。Firebase 身份验证将其用户信息存储在一个单独的位置,并且它不知道您存储的关于这些相同用户的 JSON 数据。

要查找 Firebase 身份验证为用户保留的帐户信息(并将其删除),请转到Firebase 控制台中的身份验证面板


推荐阅读