source

파이어베이스 인증에서 이메일을 변경하는 방법은 무엇입니까?

manycodes 2023. 6. 6. 00:10
반응형

파이어베이스 인증에서 이메일을 변경하는 방법은 무엇입니까?

다음을 사용하여 사용자의 전자 메일 주소를 변경/업데이트하려고 합니다.

firebase.auth().changeEmail({oldEmail, newEmail, password}, cb)

하지만...changeEmail은 함수 오류가 아닙니다.저는 여기서 오래된 소방 기지 문서에서 참조를 찾았습니다.

3.x 버전에서는 어떻게 해야 합니까?왜냐하면 새로운 문서에서 참조를 찾을 수 없기 때문입니다.

당신은 찾고 있습니다.updateEmail()의 방법firebase.User개체: https://firebase.google.com/docs/reference/js/firebase.User#updateEmail

이것은 사용자 개체에 있으므로 사용자는 이미 로그인해야 합니다.따라서 암호만 필요합니다.

단순 사용:

firebase.auth()
    .signInWithEmailAndPassword('you@domain.example', 'correcthorsebatterystaple')
    .then(function(userCredential) {
        userCredential.user.updateEmail('newyou@domain.example')
    })

Firebase Admin을 통해 사용자의 전자 메일을 업데이트하려는 사용자는 여기에 문서화되어 있으며 다음 작업을 수행할 수 있습니다.

admin.auth().updateUser(uid, {
  email: "modifiedUser@example.com"
});

FireBase V9(모듈형) 사용자:

승인된 답변은 귀하에게 적용되지 않습니다.대신 이렇게 할 수 있습니다. 즉, 가져오기{ updateEmail }다른 수입품처럼 사용할 수 있습니다.다음 코드는 https://firebase.google.com/docs/auth/web/manage-users 의 fb 문서에서 직접 복사/붙여넣기되었습니다.

해피 코딩!

import { getAuth, updateEmail } from "firebase/auth";
const auth = getAuth();
updateEmail(auth.currentUser, "user@example.com").then(() => {
  // Email updated!
  // ...
}).catch((error) => {
  // An error occurred
  // ...
});

AngularFire2에서 직접 이 작업을 수행할 수 있으며, 경로에 "currentUser"를 추가하기만 하면 됩니다.

this.af.auth.currentUser.updateEmail(email)
.then(() => {
  ...
});

또한 Firebase는 계정 삭제, 전자 메일 또는 암호 변경과 같은 특정 계정 기능을 수행하기 위해 새로운 인증이 필요하므로 이를 호출하기 전에 로그인을 다시 인증해야 합니다.

방금 구현한 프로젝트의 경우 암호/이메일 변경 양식에 로그인을 포함한 다음 "업데이트 전자우편" 호출 직전에 "signInWithEmailAndPassword"를 호출했습니다.

암호를 업데이트하려면 다음을 수행합니다.

this.af.auth.currentUser.updatePassword(password)
.then(() => {
  ...
});

e-메일은 보안에 중요한 정보이므로 e-메일은 로그인 후 즉시 업데이트해야 합니다.
Kotlin 예제

 // need to sign user in immediately before updating the email 
        auth.signInWithEmailAndPassword("currentEmail","currentPassword")
        .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    // Sign in success now update email                
                    auth.currentUser!!.updateEmail(newEmail)
                        .addOnCompleteListener{ task ->
                        if (task.isSuccessful) {
               // email update completed
           }else{
               // email update failed
                    }
       }
       } else {
                    // sign in failed
                }
            }
async updateEmail() {
const auth = firebase.auth();
try {
  const usercred = await auth.currentUser.updateEmail(this.email.value);
  console.log('Email updated!!')
} catch(err) {
  console.log(err)
}
}

이를 통해 Firebase로 전자 메일을 업데이트할 수 있습니다.

Firebase v9:

const changeEmail = (userInput) => {
        const { newEmail, pass } = userInput
        signInWithEmailAndPassword(auth, oldEmail, pass)
            .then(cred => updateEmail(cred.user, newEmail))
    }

언급URL : https://stackoverflow.com/questions/39909964/how-to-change-email-in-firebase-auth

반응형