1

我正在用Ionic 3/Angular 4/Firebase构建应用程序。以下代码正确认证用户并且登录有效。我不能读error.code,即使它在console.log(error)Ionic Firebase身份验证:无法读取错误代码

这里是我的代码:

firebase.auth().signInWithEmailAndPassword(this.user.email, this.user.password) 
     .then((result) => { 
      // show toast 
      this.toast.show("Login was successful"); 
      // set user to storage 
      this.storage.set("user", JSON.stringify(result)) 
      // restore form submitted state 
      this.submitted = false; 
      // set nav root to Dashboard 
      this.navCtrl.setRoot("DashboardPage"); 
     }) 
     .catch((error) => { 
      console.error(error); 

      let errorCode = error.code // THIS CAN'T BE READ 
     }); 

由VS代码提示错误对象的属性是error.messageerror.nameerror.stack

这里是控制台日志:

O {code: "auth/invalid-email", message: "The email address is badly 
formatted."} 
code: "auth/invalid-email" 
message: "The email address is badly formatted." 

UPDATE

铸造到any作品,但我不认为,这是它应该做的方式。

.catch((error: any) => { 

回答

2

先给error类型firebase.FirebaseError,像这样:

.catch((error:firebase.FirebaseError) => { 
    console.error(error); 
    let errorCode = error.code // THIS CAN'T BE READ 
}); 
+0

谢谢您的回答。不幸的是,我得到一个新的错误:'类型'(错误:错误)=>无效'的参数不能分配给'(a:Error)=> any'类型的参数。参数'error'和'a'的类型 不兼容。类型'错误'不可分配给类型 'firebase.auth.Error'。属性“代码”在类型'错误'中丢失.' –

+0

是的,我得到了同样的错误!但只有在包含我的服务的文件中,我已经导入了Firebase。 – robbannn

+1

尝试使用类型'firebase.FirebaseError'。 – robbannn

相关问题