AngularAuth / Firebase - Firefox中登录屏幕上的电子邮件无效

问题描述 投票:0回答:1

我正在使用angular和firebase登录我的firebase网络应用程序。使用Firefox时,我简要地得到错误:

auth / invalid-email /电子邮件地址格式错误。

但是,用户名和密码是正确的,我正确地路由到已登录的应用程序。

HTML

 <form *ngIf="authService.showLogin" #loginForm="ngForm" action="" (submit)="login()" autocomplete="off" method="POST">
    <h1> Sign In </h1>
    <div class="form-group">
      <div>
        <label> Email Address </label>
        <input type="email" placeholder="[email protected]" [(ngModel)]="email" name="email"
          required/>
      </div>
    </div>
    <div class="form-group">
      <div>
        <label> Password </label>
        <input type="password" placeholder="Password" [(ngModel)]="password" name="password"
          required/>
      </div>
    </div>
    <div *ngIf="authService.incorrectPassword">
      <span class="error__msg">{{ authService.incorrectPassword }}</span>
    </div>

    <button type="submit" [disabled]="loginForm.invalid" (click)="login()"> Sign In </button>

  </form>



...
constructor(private afAuth: AngularFireAuth) {}
...

login(email: string, password: string): Observable<boolean> {

  this.firebaseAuth.auth.signInWithEmailAndPassword(email, password).then(value => {

    if (this.stateURL != undefined) {
      this.router.navigate([this.stateURL]);
      return Observable.of(true);
    } else {
      this.router.navigate(['folders']);
      return Observable.of(true);
    }
  })
  .catch(err => {
    // console.log(err['code']);
    var errorCode = err.code;
    var errorMessage = err.message;
    console.log(errorCode + ' / ' + errorMessage);
    this.incorrectPassword = ErroAuthEn.convertMessage(err['code']);
    return Observable.of(false);
  });

return;
}

当我将错误记录到UI以通知用户时,这个有点烦人,因为我在正确登录之前简要地看到了错误。

有办法解决这个问题吗?

angular firebase firebase-authentication angularfire
1个回答
2
投票

我将在黑暗中采取狂野的刺伤,并说这很可能是你的问题:

<form *ngIf="authService.showLogin" #loginForm="ngForm" action="" (submit)="login()" autocomplete="off" method="POST"> 

你正在使用Angulars的写作形式而不是。

应该是什么样的:

<form *ngIf="authService.showLogin" #loginForm="ngForm" (ngSubmit)="login()" autocomplete="off" novalidate">

在这里,我已经删除了actionmethod,以及为submit交换了ngSubmit。看看这是否有助于解决问题。

另外我发现你运行login两次,删除它:

(click)="login()"来自提交按钮。

© www.soinside.com 2019 - 2024. All rights reserved.