사용자 가입 후 확인 메일을 보내고 싶습니다. 나는 그 코드를 작성했지만 반응 네이티브에서 firebase를 사용하는 현재 사용자를 얻으려면 항상 null을 반환합니다. 어떻게 고칠 수 있습니까?
가입 기능은 다음과 같습니다.
firebase
.auth()
.createUserWithEmailAndPassword(email, password)
.then(navigation.navigate("WaitingRoom"))
.catch((err) => console.log(err));
또한 이메일 확인 기능 WaitingRoom
:
firebase.auth().onAuthStateChanged(function (user) {
if (user) {
user
.sendEmailVerification()
.then(() => {
console.log(":)");
})
.catch((err) => {
console.log(err);
});
} else {
console.log(":(");
}
});
또한 firebase.auth (). currentUser 시도했지만 null도 반환합니다.
위의 의견에서 "일어납니다.하지만 지연 이 발생 하고 페이지를 새로 고침해야합니다. 응답을 기다려야 할 것 같습니다."
예, doc에 설명 된대로 Auth
객체 초기화가 완료 될 때까지 기다려야합니다 .
이것이 당신이해야하는 이유입니다 :
onAuthStateChanged()
관찰자를 사용하고 원하는 코드 / 비즈니스 로직을 if (user) {}
블록 에 넣으십시오 . 여기서 user
널이 아닌 것이 확실 합니다.firebase.auth().currentUser
아닌지 수동으로 확인하십시오 null
.구체적으로, 나는 당신의 질문에서 이해하는 내용에 따라, 당신은 / 호출 할 수 navigation.navigate("WaitingRoom")
에서 onAuthStateChanged()
다음과 같이 관찰자 :
firebase.auth().onAuthStateChanged(function (user) {
if (user) {
user
.sendEmailVerification()
.then(() => {
navigation.navigate("WaitingRoom");
})
.catch((err) => {
console.log(err);
});
} else {
console.log(":(");
}
});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다