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í:
-
Actualizar nueva dependencia
implementation 'com.google.firebase:firebase-auth:20.0.0'
-
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.
-
Necesitas copiar SHA-256 de su archivo Keystore o JKS y agregue aquí en Huellas dactilares del certificado SHA:
-
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'