"Это приложение не имеет права использовать 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 при аутентификации телефона.
Надеюсь, это поможет кому-нибудь.
Ответ 6
Сгенерировать сертификат SHA-1
предпочитайте эту ссылку отпечаток SHA-1 сертификата хранилища ключей
![enter image description here]()
после открытия консоли firebase и добавьте сюда этот SHA-1.
Ответ 7
Я также столкнулся с аналогичной проблемой в сборке "Реакция-натив", как показано на рисунке ниже. Я решил проблему, выполнив следующие шаги.
![enter image description here]()
Согласно @adirzoari, откройте свой собственный проект в Android-студии, а затем:
- Запустите свой проект.
- Нажмите на меню Gradle.
- Разверните дерево задач Gradle.
- Дважды щелкните на 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]()
Теперь сохраните изменения, затем вернитесь в свое приложение и протестируйте его снова, теперь оно будет работать!