해당 파이어베이스 인증창에서는 이메일이 승인되었는지 알수가 없었다.
검색한 결과, 이메일 인증을 위한 메일 보낸 후 해당 링크를 클릭하게 되면
다음과 같은 인증완료 창을 볼수 있다.
이후 파이어베이스에서 사용자정보를 불러와 user.isEmailVerified() 를 사용하여 메일이 인증되었는지 확인하면 true 또는 false 값으로 반환된다.
mFirebaseAuth = FirebaseAuth.getInstance();
final FirebaseUser User = mFirebaseAuth.getCurrentUser();
if (user.isEmailVerified()) {
// 이메일이 인증 되었을 때
}else{
// 이메일 미인증시
}
인증한 후 다시 사용자정보를 다시 불러와야 하는 데,
mFirebaseAuth.getCurrentUser().reload()
방법으로만은 빠른 응답을 기대하기 어려웠다.
@Override
protected void onStart() {
super.onStart();
mFirebaseAuth = FirebaseAuth.getInstance();
final FirebaseUser mFirebaseUser = mFirebaseAuth.getCurrentUser();
if (mFirebaseUser == null) { //사용자 없을시
Toast.makeText(this, getResources().getString(R.string.login_need), Toast.LENGTH_SHORT).show();
Intent intent = new Intent(this, Activity_Login.class);
startActivity(intent);
finish();
} else { // 사용자 있을 시 다시 불러옴
mFirebaseAuth.getCurrentUser().reload().addOnSuccessListener(new OnSuccessListener() {
@Override
public void onSuccess(Void aVoid) {
updateUI(mFirebaseUser);
}
});
}
}
onStart() 를 이용하여 다시 화면을 사용할 때마다 다시 사용자정보를 업데이트 하도록 했다.
참고링크
- Email Verification in Firebase Auth (https://firebase.googleblog.com/2017/02/email-verification-in-firebase-auth.html)
- Implement reload of a firebase user (needed for email verification)(https://github.com/EddyVerbruggen/nativescript-plugin-firebase/issues/483)