みかづきブログ・カスタム

基本的にはちょちょいのほいです。

Firebase Authenticationを使って、メールアドレスとパスワード認証で作成したユーザーのメールアドレスを変更する ✉️

ドキュメント を見ながら、updateEmailを使って実装してみました。

firebase.google.com

import {
  updateEmail,
  User
} from 'firebase/auth';

async function changeEmail(currentUser: User, newEmail: string) {
  return updateEmail(currentUser, newEmail);
}

という感じで実装してみたのですが、

FirebaseError: Firebase: Please verify the new email before changing email. (auth/operation-not-allowed).

と、エラーが発生しました。

もろもろ調べてみたところ、verifyBeforeUpdateEmailを使うのが正しい実装のようです。

firebase.google.com

import {
  User,
  verifyBeforeUpdateEmail
} from 'firebase/auth';

async function changeEmail(currentUser: User, newEmail: string) {
  return await verifyBeforeUpdateEmail(currentUser, newEmail);
}

verifyBeforeUpdateEmailを実行すると、新しいメールアドレスに確認メールが届き、メール内のリンクをクリックするとメールアドレスが変更されます。