当前位置: 首页 > 知识库问答 >
问题:

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

习华灿
2023-03-14

我正在使用angular和firebase登录我的firebase web应用程序。在使用Firefox时,我简单地得到了一个错误:

身份验证/电子邮件无效/电子邮件地址格式错误。

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

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="name@company.com" [(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以通知用户时,这有点烦人,因为我在正确登录之前短暂地看到了错误。

有办法解决这个问题吗?

共有1个答案

孟英光
2023-03-14

我要在黑暗中大胆尝试一下,说这很可能是你的问题:

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

您正在使用Angulars和not两种方式来编写表单。

它应该是什么样子:

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

在这里,我删除了操作和方法,并将提交替换为ngSubmit。看看这是否有助于解决问题。

此外,我发现您正在运行两次登录,请删除以下内容:

(单击提交按钮)=“login()”

 类似资料:
  • null 我需要重新验证用户,最好的方法是什么?在用户登录后,如何切换的状态? 谢谢

  • 我正在使用Apple sign in将用户登录到我的应用程序,然后在Firebase上进行身份验证。现在,有时用户不分享他们的电子邮件,在这种情况下,苹果提供了一个虚构的电子邮件。登录后,am通过先用Firebase验证,将电子邮件存储在数据库中。我更新虚构的电子邮件与一个真实的首先在firebase,然后发送验证电子邮件。在firebase上更新主电子邮件后,用户是否可以再次登录苹果,因为苹果仍

  • 问题内容: 我希望django通过电子邮件而非用户名对用户进行身份验证。一种方法是提供电子邮件值作为用户名值,但我不希望这样。原因是,我有一个,所以我不能有一个。 另一个原因是所有电子邮件都是唯一的,但有时用户名已被使用。因此,我将自动创建用户名为。 我该如何更改才能让Django通过电子邮件进行身份验证? 这就是我创建用户的方式。 这就是我的登录方式。 除了先获取用户名外,登录还有其他方法吗?

  • 我希望django通过电子邮件而不是用户名来验证用户。一种方法是提供电子邮件值作为用户名值,但我不希望这样。原因是,我有一个url

  • 我被困了24小时所以这是我的最后一次机会。 当我输入我的登录详细信息:电子邮件和密码,它说不正确的电子邮件。电子邮件在数据库里。我的注册表正常工作。我不明白为什么我的登录表单不工作或哪里出错。 当它在第100行显示“不正确的电子邮件”时,其中($row===false)。 我真的很困惑。如果有人能帮助我或与我一起工作,我将非常感激。 登录表单: Connectdb代码: PHP代码:

  • Firebase 简单登录提供电子邮件/密码选项,我该如何使用它?从创建用户、为该用户存储数据开始,到登录和注销。