我有以下代码,需要从控制台中出现的userdata对象中提取密码,如下所示:
-mel7hm5pu3rghvxnylr:{名称:“wed”,密码:“wed”,用户名:“wed”}
我的代码是
const Login = e => {
e.preventDefault();
firebaseDb.child("authors").orderByChild("userName").equalTo(userName).once("value", snapshot => {
if (snapshot.exists()) {
const userData = snapshot.val();
console.log(userData)
if(userData.password !== password)
window.alert("Username or Password are wrong!");
else {
history.push("/AuthorForm");
localStorage.setItem("author-info",
JSON.stringify(userName));
}
}
});
}
2条答案
按热度按时间nxagd54h1#
注意:使用这种方式是不安全的。任何发出登录请求的人都将获得该用户名的密码,因为您正在进行客户端验证。
除此之外,您的对象看起来像:
你可以用
Object.values()
访问名称和密码字段。olmpazwi2#
对firebase数据库执行查询时,可能会有多个结果。因此,快照包含这些结果的列表。即使只有一个结果,快照也将包含一个结果列表。
您的代码需要处理这样一个事实:它通常通过使用firebase的内置
forEach
方法: