【问题标题】:Firebase: There is no user record corresponding to this identifier. The user may have been deletedFirebase:没有与此标识符对应的用户记录。该用户可能已被删除
【发布时间】:2017-01-31 08:14:20
【问题描述】:

我正在使用 Ionic2/Angular2 与 AngularFire2 和 Firebase 在登录时对我的用户进行身份验证。

通过邮箱和密码成功注册用户后,我可以使用该邮箱和密码成功登录。

public fireAuth: firebase.auth.Auth;
...
    loginFirebaseUser(email: string, password: string): firebase.Promise<boolean> {
        return this.fireAuth.signInWithEmailAndPassword(email, password).then(() => {
            console.log('signInWithEmailAndPassword', email, password);
        }).catch((error)=> {
            console.error('Error signInWithEmailAndPassword', email, password, error.name, error.message);
            throw new Error(error.message);
        });
    }

当我更改用户电子邮件时,它会成功更新(我可以在管理控制台中看到更新并且没有错误)。

this.fireAuth.onAuthStateChanged((firebaseUser: firebase.User) => {
    firebaseUser.updateEmail(newEmail).then((data) => {...

然后我成功验证了新电子邮件。但是,当我尝试使用新的电子邮件和密码再次登录时,我得到:

There is no user record corresponding to this identifier. The user may 
 have been deleted.

总之,如果我不更新电子邮件地址,一切正常。如果我确实更新了电子邮件地址,我会在尝试登录时收到上述错误。

【问题讨论】:

    标签: angular firebase ionic2 firebase-authentication angularfire2


    【解决方案1】:

    当用户更新其电子邮件、密码或重置密码时。 Firebase 身份验证后端会撤销他们的令牌,要求他们重新进行身份验证或尝试再次登录。这是一项安全功能。例如,如果他们的帐户被盗用,用户可以重置他们的密码。所有其他会话都必须重新进行身份验证。

    【讨论】:

    • 感谢您的信息。用户如何重新认证?用户尝试使用新的电子邮件和密码登录,但收到上述错误。我需要调用 reuthenticate 函数吗?
    • 奇怪的东西。我今天早上正在测试它,我没有任何问题,它可以工作。也许电脑重启删除​​了一些缓存或其他东西。很抱歉,感谢您的帮助。
    【解决方案2】:

    发生这种情况是因为 与您一起登录/登录的电子邮件不存在,您必须使用 auth.createUserWithEmailAndPassword 注册该电子邮件,然后登录/注册或更正您的电子邮件和密码。

    【讨论】:

      猜你喜欢
      • 2019-05-20
      • 2021-04-20
      • 1970-01-01
      • 1970-01-01
      • 2019-06-02
      • 1970-01-01
      • 2019-08-09
      • 2018-03-22
      • 1970-01-01
      相关资源
      最近更新 更多