"Это приложение не имеет права использовать Firebase Authentication" в эмуляторе

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

Что я сделал:

  • Я использую Firebase-UI и запускаю Android O
  • У меня обновлен Play Store.
  • Я добавил весь код SHA-1 в консоль Firebase и совпадение имени пакета.

Фактически, когда я запускаю приложение на реальном устройстве, он работает отлично, и я могу войти в систему.

This app is not authorized to use Firebase Authentication. Please verify that the correct package name and SHA-1 are configured in the Firebase Console.
 com.google.firebase.auth.FirebaseAuthException: This app is not authorized to use Firebase Authentication. Please verifythat the correct package name and SHA-1 are configured in the Firebase Console. [ App validation failed. Is app running on a physical device? ]
 at com.google.android.gms.internal.jz.zzK(Unknown Source:239)
 at com.google.android.gms.internal.kp.zza(Unknown Source:2)
 at com.google.android.gms.internal.kq.run(Unknown Source:37)
 at android.os.Handler.handleCallback(Handler.java:789)
 at android.os.Handler.dispatchMessage(Handler.java:98)
 at android.os.Looper.loop(Looper.java:164)
 at android.app.ActivityThread.main(ActivityThread.java:6541)
 at java.lang.reflect.Method.invoke(Native Method)
 at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

Ответ 1

В целях предотвращения злоупотреблений аутентификация телефона в Firebase не будет работать в эмуляторе.

Но если вы хотите использовать его для тестирования, вам следует добавить номер телефона для тестирования в консоли Firebase, который будет работать в эмуляторе.

Перейдите в консоль Firebase → Аутентификация → Метод входа в систему → Телефон и установите флажок "Номера телефонов для тестирования (необязательно)".

enter image description here

Ответ 2

ОК, так что это задокументированная ошибка. https://github.com/firebase/FirebaseUI-Android/issues/790 и https://github.com/firebase/FirebaseUI-Android/issues/868

для предотвращения злоупотреблений вы не можете использовать Phone Auth на эмуляторе.

Документы находятся здесь: https://firebase.google.com/docs/auth/android/phone-auth#before-you-begin

Также обратите внимание, что для входа по номеру телефона требуется физическое устройство, и он не будет работать на эмуляторе.

ОБНОВЛЕНИЕ Посмотрите на ответ Прасанна Анбу.

Ответ 3

Вам нужно настроить SHA-1 в консоли firebase.

Вы можете сделать это очень легко с помощью инструментов Android Studio.

  • Откройте Tools -> Firebase в Android Studio.
  • Нажмите любую из функций, например Authentication или RealtimeDatabase.
  • Нажмите Connect to Firebase и выполните необходимые действия.

или

Добавьте его вручную. Проверьте это..

Как добавить SHA-1 в приложение для Android

Ответ 4

поколение sha1 в андроид студии:

Выберите Gradle в Android Studio от правой панели

Выберите свое приложение

В заданиях → android-> signatureReport

Дважды щелкните по подписи отчета.

Вы найдете отпечаток sha1 в "Консоли Gradle"

добавить этот отпечаток sha1 в консоль Firebase

Ответ 5

Ваш ключ SHA1 не зарегистрирован в вашей консоли Firebase. Просто сгенерируйте ключ SHA, как показано на рисунке ниже, скопируйте ключ SHA из терминала Android Studio и добавьте его в настройках проекта консоли Firebase:

enter image description here

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

enter image description here

enter image description here

После этого создайте свой отпечаток SHA1, иначе ваши пользователи столкнутся с ошибкой SHA1 при аутентификации телефона.

Надеюсь, это поможет кому-нибудь.

Ответ 7

Я также столкнулся с аналогичной проблемой в сборке "Реакция-натив", как показано на рисунке ниже. Я решил проблему, выполнив следующие шаги.

enter image description here

Согласно @adirzoari, откройте свой собственный проект в Android-студии, а затем:

  1. Запустите свой проект.
  2. Нажмите на меню Gradle.
  3. Разверните дерево задач Gradle.
  4. Дважды щелкните на Android → signatureReport, и вы увидите результат

Для Android studio 2.2 - результат будет доступен в разделе "Запустить консоль", но используйте выделенную кнопку переключения.

Ответ 8

Проведя весь день, выясняя, в чем проблема. Я нашел виновника! Мы подписались на приложение Signing for Google Play. Нам нужно зарегистрировать SHA-1 в самой подписи приложения. Его можно найти в консоли Google Play в разделе "Управление выпусками"> "Подписание приложения". Он будет иметь два типа сертификатов: 1.Загрузить сертификат: это информация о сертификате из загруженного хранилища ключей. Это должно совпадать с хранилищем ключей для локальной подписи приложения, так как Google Play проверит загруженное приложение на соответствие подписанному сертификату.

2.Сертификат подписи приложения: после загрузки приложения Google заменит сертификат загрузки этим сертификатом. Это новый сертификат, который будет использоваться для опубликованного приложения в Play Store.

С этой информацией я просто понимаю, что мы не зарегистрировали SHA-1 для сертификата подписи приложения, который используется опубликованным приложением. Итак, я добавил отпечатки SHA-1 (также SHA-256, на всякий случай) в Firebase> Настройки проекта для приложения (не забудьте обновить последний файл конфигурации после добавления отпечатков).

Поэтому после добавления ваших отпечатков SHA ваши отпечатки пальцев сертификата Firebase SHA будут выглядеть следующим образом:

enter image description here

Теперь сохраните изменения, затем вернитесь в свое приложение и протестируйте его снова, теперь оно будет работать!