Проверка подлинности телефона Firebase не работает на реальном устройстве Android

#firebase #flutter #firebase-authentication

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

Вопрос:

Я пытался добиться аутентификации по телефону с помощью аутентификации на базе Firebase. Он работает с эмулятором Android. Я использовал тестовый номер и действительное число в эмуляторе. Оба работают. Но только тестовый номер работает с реальным устройством и выдает это исключение для других номеров

 Error is:[firebase_auth/missing-client-identifier] This request is missing a valid app identifier, 
 meaning that neither SafetyNet checks nor reCAPTCHA checks succeeded. 
 Please try again, or check the logcat for more details.
  

Я также настраиваю ключ SHA в firebase.

Ответ №1:

Я предполагаю, что вы не включили API проверки устройства. Все, что вам нужно сделать, это включить API проверки устройства на облачной платформе.

Я думаю, что после некоторых обновлений они внесли это изменение, что для обеспечения безопасности вам нужна аутентификация SH1 вместе с включением API проверки устройства.

Вы можете выполнить шаги, указанные здесь.

Как только вы включите api проверки устройства. Перезапустите приложение. Это должно работать как шарм.

Дайте мне знать, если вам нужны дальнейшие шаги.

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

1. Я включил проверку устройства Android из Google Cloud и создал ключ учетных данных. Но как подключить его к моему проекту firebase?

2. Итак, вы включили API проверки устройства по этой ссылке? console.cloud.google.com/apis/library /…

3. @AyushSurana Работает ли автозапуск Firebase OTP?

4. Привет, ребята, я реализую все упомянутые решения, но ни одно из них не работает, пожалуйста, помогите мне решить эту проблему

5. получение той же ошибки в react native ни один из вышеперечисленных методов не работает

Ответ №2:

SafetyNet — это недавно разработанная функция для Android. Но решил проблему, не внося никаких изменений в приложение.

Следующие шаги помогли мне решить.

Релизная версия

  1. Google подписывает Appbundle при загрузке. Итак, найдите и скопируйте ключ SHA1 приложения, подписанного Google. Консоль Google Play — ключ подписи приложения

введите описание изображения здесь

  1. Перейдите в свой проект -> Настройки проекта в консоли Firebase и добавьте ключ SHA1, нажав на Добавить отпечаток пальца. введите описание изображения здесь

Отладочная версия

  1. Перейдите в каталог Android вашего проекта с помощью следующей команды с помощью терминала.

cd android

  1. Создайте отчет о регистрации приложения и скопируйте ключ SHA1

отчет о регистрации gradlew

на Mac :

./ gradlew signingReport

введите описание изображения здесь

  1. Добавьте ключ SHA1 в приложение firebase.

Ответ №3:

Android добавил SafetyNet подробнее вы можете прочитать здесь. Но что вам нужно сделать, это

1. включите api проверки устройства Android здесь. и

2. Если вы еще не указали отпечаток пальца SHA-256 для своего приложения, сделайте это на странице настроек консоли Firebase. Для получения дополнительной информации прочитайте подробности здесь.

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

1. Это решение работает для меня, оба шага требуются в соответствии с документацией 1. Включить проверку устройства Android 2. Добавьте отпечаток пальца SHA-256 в консоль firebase

2. Требуется ли нам реализация ‘com.google.android.gms: play-services-safetynet: 17.0.1’, чтобы это работало?

Ответ №4:

Я решил свою проблему, удалив старые ключи Android studio sha-1 и sha-256 из firebase и добавив новый из последней версии Android studio.

Ответ №5:

Я исправил эту ошибку. В моем случае я добавил два проекта Android с одинаковым SHA-1 в один проект firebase. Однажды я удалил один проект из проекта firebase. Теперь это работает для меня.

Ответ №6:

Я нашел это после долгих поисков и должен работать для вас или любого другого, кто натыкается здесь:

Поместите эту строку в app / build.gradle в разделе зависимости

реализация «androidx.browser: браузер: 1.2.0»

Это потому, что он выполняет проверку reCAPTCHA и открывает браузер.

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

1. Ну, это сработало для меня, возможно, что-то еще не так с вашим кодом.

2. Если в коде что-то не так, он не должен работать в режиме отладки. Даже OTP приходят для тестирования телефонных номеров в режиме реального времени, но не работают только с теми номерами, которые никогда не регистрировались. Можете ли вы добавить ссылочный URL-адрес, откуда вы обнаружили, что эта зависимость должна быть добавлена для аутентификации на базе Firebase?

3. Проблема для меня заключалась в том, что firebase на экране OTP хотел открыть браузер для recaptcha, я считаю, что теперь это поведение по умолчанию. Поскольку браузер отсутствовал, он не работал, и он работал, когда я его туда вставил. Так что, поскольку я не уверен, в чем именно ваша проблема, я не могу помочь.

Ответ №7:

Для этого есть два способа проверки подлинности Firebase:

SafetyNet: если у пользователя установлено устройство с установленными службами Google Play, и проверка подлинности Firebase может подтвердить, что устройство является законным с помощью Android SafetyNet, вход по номеру телефона может быть продолжен.

или

Проверка повторной проверки: в случае невозможности использования SafetyNet, например, когда у пользователя нет поддержки служб Google Play или при тестировании вашего приложения на эмуляторе.

Итак, ваше решение — одно из двух

  • Повторное тестирование на реальном устройстве

  • Добавьте в свое приложение функцию проверки reCAPTCHA, чтобы вы могли продолжить работу с вашим эмулятором.

Ответ №8:

Это сработало для меня: — Если ваше приложение опубликовано в Play Store, скопируйте сертификат ключа подписи приложения из консоли Google Play (Выпуск> Настройка> Страница целостности приложения).). Вставьте свой ключ подписи в консоль Firebase (страница настроек проекта).

Перейдите по этой ссылке — https://developers.google.com/android/guides/client-auth

Ответ №9:

Я удалил свой номер телефона из номера телефона для тестирования на firebase, и это сработало для меня при работе на реальном устройстве, а не на эмуляторе.