ドキュメント を見ながら、updateEmailを使って実装してみました。
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を使うのが正しい実装のようです。
import { User, verifyBeforeUpdateEmail } from 'firebase/auth'; async function changeEmail(currentUser: User, newEmail: string) { return await verifyBeforeUpdateEmail(currentUser, newEmail); }
verifyBeforeUpdateEmailを実行すると、新しいメールアドレスに確認メールが届き、メール内のリンクをクリックするとメールアドレスが変更されます。