zone.js:199未捕获的TypeError:无法在user.service.ts:32处读取null的属性“密码”

时间:2019-11-12 07:20:38

标签: angular typescript firebase

我正在尝试从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);
  }       
database

有人可以纠正我犯错的地方吗,还应该如何检查数据库中是否存在电子邮件ID,如果没有用户,该如何返回错误值?

1 个答案:

答案 0 :(得分:2)

该错误明确表明snapshot.val()为空。

您必须在此处添加一张支票,例如:

if(snapshot.val()){
    this.userpassword = snapshot.val().password
}