Не удается войти с помощью Firebase Auth на Android

# #java #android #firebase #firebase-authentication

Вопрос:

Я пытаюсь пройти аутентификацию в firebase. Моей первой ошибкой в Android было [ Cleartext HTTP traffic to 10.0.2.2 not permitted ] . Я прочитал, как это делается, и включил открытый текст. Итак, теперь я получаю ответы от firebase. Но это всегда «сетевая ошибка», указывающая, что причиной может быть тайм-аут или недоступный хост.

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

  • Включен трафик с открытым текстом в manifest.xml
  • Создал network_security_config и указал его в моем manfiest.xml
  • Обновленные функции аутентификации firebase и сервисов Google в gradle
  • Попробовал на реальном устройстве (все еще не удается)
  • Обновленные сервисы Google Play на эмуляторе Android
  • Проверенный эмулятор Android имеет доступ в Интернет
  • Проверено, что в моем проекте Firebase есть мой идентификатор приложения и SHA-1
  • Включена проверка подлинности проверенной электронной почты

Вот мой звонок на огневую базу:

 auth().createUserWithEmailAndPassword(data.email, data.password).addOnCompleteListener(
                    (task) -> {
                        hideProgressBar();
                        if (task.isSuccessful()) {
                           //do stuff on success...                   
                        } else {
                            String localizedMessage = task.getException().getLocalizedMessage();
                            errorText.setText(localizedMessage);
                        }
                    }
 

Мой Manifest.xml:

     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:usesCleartextTraffic="true"
        android:networkSecurityConfig="@xml/network_security_config"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:name=".MyApp">

 

Моя конфигурация безопасности res/xml:

 <?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">10.0.2.2</domain>
    </domain-config>
</network-security-config>
 

Я попробовал использовать Firebase Emulator . Все работало при эмуляции экземпляра аутентификации

     @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        // Unchanged code
        View v = inflater.inflate(getLayoutId(), container, false);
        initVM();
        progressBar = v.findViewById(R.id.progress_bar);
        errorText = v.findViewById(R.id.error_text);
        auth = FirebaseAuth.getInstance();

        //Added emulator code 
        auth.useEmulator("10.0.2.2", 9099);
        return v;
    }

 

На Stack Trace огневой базе есть сбои

 W/System: Ignoring header X-Firebase-Locale because its value was null.
W/LoginScreen: signInWithCredential:failure
    com.google.firebase.FirebaseNetworkException: A network error (such as timeout, interrupted connection or unreachable host) has occurred.
        at com.google.android.gms.internal.firebase-auth-api.zzto.zza(com.google.firebase:firebase-auth@@21.0.1:17)
        at com.google.android.gms.internal.firebase-auth-api.zzuw.zza(com.google.firebase:firebase-auth@@21.0.1:9)
        at com.google.android.gms.internal.firebase-auth-api.zzux.zzl(com.google.firebase:firebase-auth@@21.0.1:1)
        at com.google.android.gms.internal.firebase-auth-api.zzuu.zzk(com.google.firebase:firebase-auth@@21.0.1:25)
        at com.google.android.gms.internal.firebase-auth-api.zztl.zzh(com.google.firebase:firebase-auth@@21.0.1:1)
        at com.google.android.gms.internal.firebase-auth-api.zzpm.zza(com.google.firebase:firebase-auth@@21.0.1:2)
        at com.google.android.gms.internal.firebase-auth-api.zzvb.zza(com.google.firebase:firebase-auth@@21.0.1:28)
        at com.google.android.gms.internal.firebase-auth-api.zzul.zzq(com.google.firebase:firebase-auth@@21.0.1:4)
        at com.google.android.gms.internal.firebase-auth-api.zzpt.zzA(com.google.firebase:firebase-auth@@21.0.1:4)
        at com.google.android.gms.internal.firebase-auth-api.zztp.zzv(com.google.firebase:firebase-auth@@21.0.1:5)
        at com.google.android.gms.internal.firebase-auth-api.zzsb.zzd(com.google.firebase:firebase-auth@@21.0.1:3)
        at com.google.android.gms.internal.firebase-auth-api.zzsa.accept(Unknown Source:6)
        at com.google.android.gms.common.api.internal.zacj.doExecute(com.google.android.gms:play-services-base@@17.5.0:2)
        at com.google.android.gms.common.api.internal.zah.zaa(com.google.android.gms:play-services-base@@17.5.0:9)
        at com.google.android.gms.common.api.internal.GoogleApiManager$zaa.zac(com.google.android.gms:play-services-base@@17.5.0:193)
        at com.google.android.gms.common.api.internal.GoogleApiManager$zaa.zab(com.google.android.gms:play-services-base@@17.5.0:158)
        at com.google.android.gms.common.api.internal.GoogleApiManager$zaa.zaa(com.google.android.gms:play-services-base@@17.5.0:126)
        at com.google.android.gms.common.api.internal.GoogleApiManager.handleMessage(com.google.android.gms:play-services-base@@17.5.0:164)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:223)
        at android.os.HandlerThread.run(HandlerThread.java:67)


 

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

1. можешь показать мне своего бревенчатого кота

2. @VishalBeep Конечно, на каком уровне хорошо, многословно? И вам конкретно нужен лог-кот для firebase?

3. опубликуйте свой журнал, в котором произошла ошибка.

4. @VishalBeep О, мое приложение не выходит из строя и не содержит ошибок в журнале cat. Когда я пытаюсь подключиться к firebase, я смотрю на сообщение, которое оно отправляет обратно в виде строки, и оно сообщает мне, что произошла «сетевая ошибка» и т. Д., Из-за которой попытка входа в систему не была принята.

5. Если вы ранее использовали Firebase Emulator комментарий к коду, связанному с эмулятором, и вы сможете войти в систему.