3

ログイン時にユーザーを認証するためにAngularFire2とFirebaseでIonic2/Angular2を使用しています。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. 

、私は電子メールアドレスを更新しない場合、すべてが動作します。メールアドレスを更新すると、ログインしようとすると上記のエラーが表示されます。

答えて

1

ユーザーが電子メール、パスワードを更新したり、パスワードをリセットすると、 Firebase Authバックエンドは、トークンを取り消し、再認証を要求するか、再度サインインを試みます。これはセキュリティ機能です。たとえば、アカウントが侵害された場合、ユーザーはパスワードをリセットすることができます。その他のセッションはすべて再認証する必要があります。

+0

ありがとうございます。ユーザーはどのようにして再認証されますか?ユーザーは新しい電子メールとパスワードでログインしようとしますが、上記のエラーが発生します。 reuthenticate関数を呼び出す必要がありますか? – Richard

+0

奇妙なことです。私は今朝テストしていますが、問題はありません。おそらく、PCの再起動によってキャッシュや何かが削除された可能性があります。申し訳ありませんが、私はあなたの助けに感謝します。 – Richard

関連する問題