파이어베이스 인증에서 이메일을 변경하는 방법은 무엇입니까?
다음을 사용하여 사용자의 전자 메일 주소를 변경/업데이트하려고 합니다.
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
'source' 카테고리의 다른 글
표시된 데이터와 축 사이의 공간 제거 (0) | 2023.06.10 |
---|---|
WPF 전역 글꼴 크기 (0) | 2023.06.06 |
UIAction 만들기변수 목록이 아닌 배열로 전달하여 '기타 단추'를 시트합니다. (0) | 2023.06.06 |
레일에서 비계 실행 취소 (0) | 2023.06.06 |
Rstudio에서 작업 디렉토리를 원본 파일 위치로 설정하기 위한 R 명령 (0) | 2023.06.06 |