访问Firebase RTD中的子节点属性



我有一个.js文件,在这个文件中,我循环浏览Firebase实时数据库,找到注册用户的电子邮件和密码,这些电子邮件和密码存储在数据库的/users树下,每个孩子都随机生成了唯一的id,其中包含用户信息。我正在从表单元素获取电子邮件和密码信息。问题是,当电子邮件和密码不相等时,checkMessage中的警告消息不会执行。应显示警报消息,但仅显示页面刷新。

Database:
----/Users
--------/XJIGFDMDKGD
-------------email: "a@b.com"
-------------password: "12345"
--------/XJFGNRIENGJ
-------------email: "c@d.com"
-------------password: "67890"

我的代码:

document
.getElementById('loginForm')
.addEventListener('submit', formSubmit);
function formSubmit(e) {
e.preventDefault();
document.querySelector('.alert').style.display = 'block';
// Get Values from the DOM
let email = document.querySelector('#email').value;
let password = document.querySelector('#password').value;
//check message values
checkMessage(email, password);

//Form Reset After Submission
//document.getElementById('loginForm').reset();
}

checkMessage函数:

function checkMessage(email, password) {
var usrs = firebase.database().ref('users');
usrs.on("child_added", function(snapshot) {
var user = snapshot.val();
if (user.email == email) {
if (user.password == password) {
} else {
}
} else {
document.querySelector('.alert2').style.display = 'block';
setTimeout(function() {
document.querySelector('.alert2').style.display = 'none';
}, 7000);
document.getElementById('loginForm').reset();
}
);
}

错误是由语法问题、下一节代码末尾的额外大括号以及放错地方的括号引起的。固定解决方案:

var users = firebase.database().ref('users');
users.on("child_added", function(snapshot) {
var user = snapshot.val();
if (email == user.email) {
if (password == user.password) {
}
} else {
};
});

最新更新