Проверка подлинности Firebase phone на предмет запуска потока reCAPTCHA

#android #firebase #firebase-authentication

# #Android #firebase #firebase-аутентификация

Вопрос:

Из документов

Поток reCAPTCHA будет запущен только тогда, когда SafetyNet недоступен или ваше устройство не проходит проверку на подозрительность. Тем не менее, вы должны убедиться, что оба сценария работают правильно.

Я хочу проверить, был ли показан пользователю экран reCAPTCHA, чтобы я мог отслеживать его в аналитике приложений.

Я не смог найти какой-либо способ добиться этого в документах. Я что-то пропустил, или это пока недоступно?

Комментарии:

1. Можете ли вы добавить, какой тип reCAPTCHA вы выбрали? Это флажок?

2. Я не выбираю, какой тип Recaptcha будет показан пользователю, это решает firebase.

Ответ №1:

  1. Сохраните флаг, который будет переключаться при переходе от текущего Activity или Fragment . Возможно, вам нужно позаботиться о том случае, когда пользователь сворачивал приложение (нажимая кнопку home или call), иначе вы получите неточную аналитику.
  val authCompleted = AtomicBoolean(false)
 
  1. Переключайте его, когда вам явно нужно перейти к следующему экрану,
      override fun onAuthCompleted(){
         if(authCompleted.compareAndSet(false, true)){
             findNavController().navigate(nextDirection)
         }
     }
 
  1. Если вы переходите без переключения этого флага, это означает, что вы либо переходите к отображению reCAPTCHA ActivityDialog
     override fun onStop(){
       super.onStop()
       if(!isFinishing amp;amp; !authCompleted.get()){
         //you are probably given the reCAPTCHA dialog
       }
    }