javascript - 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 身份验证,表明该电子邮件地址已被另一个帐户使用。您正在从 Firebase 实时数据库中删除数据。Firebase 身份验证将其用户信息存储在一个单独的位置,并且它不知道您存储的关于这些相同用户的 JSON 数据。
要查找 Firebase 身份验证为用户保留的帐户信息(并将其删除),请转到Firebase 控制台中的身份验证面板。
推荐阅读
- javascript - 如果我的 URI 组件是一个完整的 URL,我应该同时使用 encodeURI() 和 encodeURIComponent () 对其进行编码吗?
- c# - 哪个项目抛出“无法加载一种或多种请求的类型”?
- cassandra-3.0 - Spring Data & Cassandra CQL,我们可以创建具有 Map 列表的表,然后查询它吗?
- .htaccess - htaccess 使用和不使用查询字符串重写 url
- javascript - 无法从承诺中获取对象
- java - 如何将新数字从具有多列的数据文件存储到数组中
- google-apps-script - Gmail 插件 - 访问被拒绝:缺少访问令牌
- macos - 无法拖动到 NSCollectionViewItem 中的图像上
- vue.js - 使用 vue-router 时如何更改页面标题?
- vue.js - 使用 Vee Validate 创建自定义验证时如何使用 Vuex 状态