Firebase Auth не работает без сервисов Google Play ⇐ Android
-
Гость
Firebase Auth не работает без сервисов Google Play
Мое приложение было отклонено в Amazon Appstore из-за ошибки при попытке войти в систему с помощью Firebase AuthUI.
Я решил провести небольшое исследование и обнаружил, что все устройства Amazon Fire работают без сервисов Google Play. Я установил новый эмулятор без сервисов Google и тоже получил ошибку.
Странно то, что в версии 20.0.0 Firebase Auth появилась функция «Библиотека Firebase Authentication Android теперь работает на устройствах без сервисов Google Play».
Код
public void SignIn() { List listProviders = Arrays.asList( новый AuthUI.IdpConfig.GoogleBuilder().build(), новый AuthUI.IdpConfig.FacebookBuilder().build(), новый AuthUI.IdpConfig.TwitterBuilder().build(), новый AuthUI.IdpConfig.YahooBuilder().build(), новый AuthUI.IdpConfig.EmailBuilder().build() ); // Создаем и запускаем намерение входа Намерение IntSignIn = AuthUI.getInstance() .createSignInIntentBuilder() .setAvailableProviders(списокпровайдеров) .setTheme(R.style.LoginTheme) .setLogo(R.drawable.login_icon) .setTosAndPrivacyPolicyUrls( "URL", «URL») .строить(); ActivityResultLauncherSignIn.launch(intentSignIn); } // https://developer.android.com/training/ ... nts/result частный окончательный ActivityResultLauncher ActivityResultLauncherSignIn = RegisterForActivityResult( новый FirebaseAuthUIActivityResultContract(), это::onSignInResult ); Private void onSignInResult (FirebaseAuthUIAuthenticationResult firebaseAuthUIAuthenticationResult) { IdpResponse idpResponse = firebaseAuthUIAuthenticationResult.getIdpResponse(); if (firebaseAuthUIAuthenticationResult.getResultCode() == RESULT_OK) { if (firebaseUser != null && firebaseUser.getEmail() != null && !firebaseUser.isEmailVerified()) Отправить письмо с подтверждением(); } еще { // Ошибка входа. Если ответ равен нулю, пользователь отменил процесс входа с помощью кнопки «Назад». В противном случае проверьте ответ.getError().getErrorCode() и обработайте ошибку. if (idpResponse != null && idpResponse.getError() != null) { Log.e(TAG, «Проблема с аутентификацией Firebase: » + idpResponse.getError().getErrorCode()); } } } Ошибка: Проблема с аутентификацией Firebase: 0
com.google.android.play.core.install.InstallException: -9: Ошибка установки (-9): приложение Play Store либо не установлено, либо его версия не является официальной.
Я использую эти зависимости:
платформа реализации('com.google.firebase:firebase-bom:32.3.1') реализация 'com.firebaseui:firebase-ui-auth:8.0.2' реализация 'com.google.android.gms:play-services-auth:20.7.0'
Мое приложение было отклонено в Amazon Appstore из-за ошибки при попытке войти в систему с помощью Firebase AuthUI.
Я решил провести небольшое исследование и обнаружил, что все устройства Amazon Fire работают без сервисов Google Play. Я установил новый эмулятор без сервисов Google и тоже получил ошибку.
Странно то, что в версии 20.0.0 Firebase Auth появилась функция «Библиотека Firebase Authentication Android теперь работает на устройствах без сервисов Google Play».
Код
public void SignIn() { List listProviders = Arrays.asList( новый AuthUI.IdpConfig.GoogleBuilder().build(), новый AuthUI.IdpConfig.FacebookBuilder().build(), новый AuthUI.IdpConfig.TwitterBuilder().build(), новый AuthUI.IdpConfig.YahooBuilder().build(), новый AuthUI.IdpConfig.EmailBuilder().build() ); // Создаем и запускаем намерение входа Намерение IntSignIn = AuthUI.getInstance() .createSignInIntentBuilder() .setAvailableProviders(списокпровайдеров) .setTheme(R.style.LoginTheme) .setLogo(R.drawable.login_icon) .setTosAndPrivacyPolicyUrls( "URL", «URL») .строить(); ActivityResultLauncherSignIn.launch(intentSignIn); } // https://developer.android.com/training/ ... nts/result частный окончательный ActivityResultLauncher ActivityResultLauncherSignIn = RegisterForActivityResult( новый FirebaseAuthUIActivityResultContract(), это::onSignInResult ); Private void onSignInResult (FirebaseAuthUIAuthenticationResult firebaseAuthUIAuthenticationResult) { IdpResponse idpResponse = firebaseAuthUIAuthenticationResult.getIdpResponse(); if (firebaseAuthUIAuthenticationResult.getResultCode() == RESULT_OK) { if (firebaseUser != null && firebaseUser.getEmail() != null && !firebaseUser.isEmailVerified()) Отправить письмо с подтверждением(); } еще { // Ошибка входа. Если ответ равен нулю, пользователь отменил процесс входа с помощью кнопки «Назад». В противном случае проверьте ответ.getError().getErrorCode() и обработайте ошибку. if (idpResponse != null && idpResponse.getError() != null) { Log.e(TAG, «Проблема с аутентификацией Firebase: » + idpResponse.getError().getErrorCode()); } } } Ошибка: Проблема с аутентификацией Firebase: 0
com.google.android.play.core.install.InstallException: -9: Ошибка установки (-9): приложение Play Store либо не установлено, либо его версия не является официальной.
Я использую эти зависимости:
платформа реализации('com.google.firebase:firebase-bom:32.3.1') реализация 'com.firebaseui:firebase-ui-auth:8.0.2' реализация 'com.google.android.gms:play-services-auth:20.7.0'
Мобильная версия