Verificación de correo electrónico usando Firebase 3.0 en Android
firebase-authentication email-verification (4)
Actualizar
La verificación por correo electrónico está disponible en la versión 9.6 y superior de Firebase SDK para Android .
Respuesta original
La verificación de correo electrónico aún no está disponible para Android. También respondí here con más contexto.
Sabía que podemos verificar el correo electrónico de los usuarios con Firebase Auth 3.0. No puedo encontrar ninguna documentación sobre la verificación de correo electrónico en Android. Puedo encontrar lo mismo para iOS y para la web, pero no para Android. Cualquier enlace a la documentación sería útil.
A partir de la imagen, está claro que una vez que el usuario inicia sesión, se lo informará por correo electrónico para confirmar su suscripción. Me suscribí y también verifiqué en la sección de usuarios en la pestaña Autenticación y puedo ver mi identificación de correo y la identificación de usuario única generada por Firebase. Lo que falta aquí es el correo electrónico de confirmación a mi identificación de correo electrónico. ¿Alguien intentó esto o estoy demasiado pronto intentando esto? Gracias por tu ayuda.
Dado que la verificación por correo electrónico solo funciona con la
Email/Password authentication
, el mejor lugar para enviarla será en el método
onComplete
método
createUserWithEmailAndPassword(...)
, después de que el registro sea exitoso.
firebaseAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
sendVerificationEmail();
....
El método de
sendVerification
personalizado es:
public void sendVerificationEmail() {
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
user.sendEmailVerification()
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Toast.makeText(SignUpActivity.this, "Signup successful.
Verification email sent", Toast.LENGTH_SHORT).show();
}
}
});
}
}
Luego puede verificar si el usuario ha verificado su correo electrónico en cualquier lugar de su aplicación llamando a:
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null ) {
Log.e(TAG, firebaseUser.isEmailVerified() ? "User is signed in and email is verified" : "Email is not verified");
} else {
Log.e(TAG, "onAuthStateChanged:signed_out");
}
}
};
La verificación de correo electrónico para Android ahora está disponible en Firebase. Consulte esta nota de la versión: https://firebase.google.com/support/release-notes/android#9.6
Una alternativa sugerida por el equipo de Firebase.
Una cosa que podría hacer es agregar un nodo a su base de datos de Firebase que contenga todas las direcciones de correo electrónico como elementos secundarios. Debe hacer que este nodo solo sea legible públicamente (a través de las reglas de seguridad de Firebase).
Luego, desde sus aplicaciones, una vez que un usuario se registra / inicia sesión, verifica si el correo electrónico de ese usuario está en la lista, y si no, lo cierra y lo expulsa de su aplicación (y como beneficio adicional, usted incluso podría registrar la dirección de correo electrónico del intruso en su base de datos, para que luego pueda verificar quién está intentando acceder a su aplicación).
Esto funcionará para la prueba inicial si conoce los identificadores de correo electrónico de las personas que probarán su aplicación hasta que la verificación de correo electrónico llegue a Android.