Saltar al contenido

Firebase Phone Verification verifyPhoneNumber () obsoleto + La aplicación se bloqueó

Solución:

Esto es lo que hice para eliminar el error:

Remití la documentación de autenticación del teléfono de Firebase e hice los cambios necesarios:

Reemplazar esto:

PhoneAuthProvider.getInstance().verifyPhoneNumber(
            phoneNumber, //phone number to be verified
            60, // validity of the OTP
            TimeUnit.SECONDS,
            (Activity) TaskExecutors.MAIN_THREAD,
            mCallBack // onVerificationStateChangedCallback
    );

Con este

PhoneAuthOptions options =
            PhoneAuthOptions.newBuilder(mAuth)
                    .setPhoneNumber(phoneNumber)       // Phone number to verify
                    .setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
                    .setActivity(this)                 // Activity (for callback binding)
                    .setCallbacks(mCallBack)          // OnVerificationStateChangedCallbacks
                    .build();
    PhoneAuthProvider.verifyPhoneNumber(options);

Además, agregue esto a las dependencias de su aplicación / archivo gradle:

implementation 'androidx.browser:browser:1.2.0'

Esto ayudará a firebase a abrir el navegador para la verificación de reCAPTCHA.

¡Espero que esto funcione!

Finalmente, obtuve soluciones con la ayuda de la respuesta de Alex Mamo y esta documentación.

Los pasos que seguí:

  1. Actualizar nueva dependencia implementation 'com.google.firebase:firebase-auth:20.0.0'

  2. Actualizar nuevo código:

    Para enviar OTP:

    PhoneAuthProvider.verifyPhoneNumber(
         PhoneAuthOptions
                 .newBuilder(FirebaseAuth.getInstance())
                 .setActivity(this)
                 .setPhoneNumber(phoneNumber)
                 .setTimeout(60L, TimeUnit.SECONDS)
                 .setCallbacks(mCallbacks)
                 .build());
    

    Para reenviar OTP

    PhoneAuthProvider.verifyPhoneNumber(
             PhoneAuthOptions
                     .newBuilder(FirebaseAuth.getInstance())
                     .setActivity(this)
                     .setPhoneNumber(phoneNumber)
                     .setTimeout(60L, TimeUnit.SECONDS)
                     .setCallbacks(mCallbacks)
                     .setForceResendingToken(token)
                     .build());
    

    Aún así, obtendrá un error como se muestra a continuación:

[SmsRetrieverHelper] Error en la solicitud del código de verificación por SMS: código de estado desconocido: 17028 Se pasó un safety_net_token, pero no se registró ningún SHA-256 coincidente en Firebase console. Asegúrese de que el par packageName / SHA256 de esta aplicación esté registrado en Firebase Console.

  1. Necesitas copiar SHA-256 de su archivo Keystore o JKS y agregue aquí en Huellas dactilares del certificado SHA:

    ingrese la descripción de la imagen aquí

  2. Finalmente, lo hiciste.

    No es necesario realizar una verificación reCAPTCHA.

Gracias.

En la nueva versión de autenticación de Firebase, han realizado cambios importantes como Recaptcha para la verificación humana.Necesita que el navegador verifique, por lo tanto, agregue la dependencia a continuación y lea sobre los cambios, consulte conmigo.

 implementation 'androidx.browser:browser:1.2.0'
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *