# #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
комментарий к коду, связанному с эмулятором, и вы сможете войти в систему.