我正在尝试从Firebase检索数据到我的角度打字稿文件中,以检查数据库中是否存在特定用户。当我尝试将电子邮件ID传递到数据库并检索相应的密码以进行验证时,出现此错误:
zone.js:199未捕获的TypeError:无法读取的属性'password' 空值 在user.service.ts:32
以下是user.service.ts
getPassword(email:string)
{
this.db.database.ref('/facility/Akhilesh').orderByChild('email').equalTo(email).once('value', (snapshot) => {
line 32<-- console.log(snapshot.val().password);
this.userpassword = snapshot.val().password;
})
return this.userpassword.toString();
const verify=this.verifyuser(instForm.value['facilityId']);
if(verify==instForm.value['facilityPasskey'])
{this.router.navigateByUrl('/login/olduser');}
verifyuser(email: string){
this.userService.getPassword(email);
}
有人可以纠正我犯错的地方吗,还应该如何检查数据库中是否存在电子邮件ID,如果没有用户,该如何返回错误值?
答案 0 :(得分:2)
该错误明确表明snapshot.val()
为空。
您必须在此处添加一张支票,例如:
if(snapshot.val()){
this.userpassword = snapshot.val().password
}