# #java #android #firebase #mobile #firebase-authentication
Вопрос:
Я шел в диспетчер AVD, чтобы увидеть, насколько мой эмулятор хранения и меня удивило, что он почти у 20 ГБ моего ПК, поэтому я уничтожил эмуляторы данных, но когда я войти в мой опорному пункту приложения, он не распознает учетную запись и дает погрешность опорного пункта «пользователь-запись, соответствующую этой identifyer ошибку или Firebaseauthinvaliduserexception» 1 , хотя счет все еще существует в опорному пункту 3
редактировать: возможно, imgur отстой idk, как его отобразить, и idk, если он будет отображаться, ошибка firebase 1
Итак, если когда-либо пользователь удалит данные моего приложения, как я исправлю такую ошибку
Код здесь для входа в систему:
импорт com.google.огневая база.авт.FirebaseAuth; импорт com.google.огневая база.авт.Пользователь FirebaseUser;
общедоступный класс MainActivity расширяет совместимость приложений {
Button login, register; EditText provided_email, provided_pass; String emailPattern = "[a-zA-Z0-9._-] @[a-z] \. [a-z] "; ProgressDialog progressDialog; FirebaseAuth mAuth; FirebaseUser mUser; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); login = findViewById(R.id.login_button); register = findViewById(R.id.register_button); provided_email = findViewById(R.id.provided_email); provided_pass = findViewById(R.id.provided_pass); progressDialog = new ProgressDialog(this); mAuth=FirebaseAuth.getInstance(); mUser=mAuth.getCurrentUser(); register.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Register(); } }); login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { LogAuth(); } }); } //prevents current activity from going further back @Override public void onBackPressed(){ Toast.makeText(getApplicationContext(),"Reached the end of going back using back button",Toast.LENGTH_SHORT).show(); } public void Register(){ Intent i = new Intent(this, RegisterActivity.class); startActivity(i); } //login authorize, requires firebase auth private void LogAuth(){ //trim() to make sure it turns to string: advisable and just followed String email = provided_email.getText().toString(); String pass = provided_pass.getText().toString(); if(!email.matches(emailPattern)) { provided_email.setError("Enter Correct Email"); } else if(pass.isEmpty() || pass.length()lt;6) { provided_pass.setError("Enter a password no less than 6 letters long"); } else{ progressDialog.setMessage("Please wait while login is processing..."); progressDialog.setTitle("Login"); progressDialog.setCanceledOnTouchOutside(false); progressDialog.show(); //tell authentication to sign in with email and password mAuth.signInWithEmailAndPassword(email,pass).addOnCompleteListener(new OnCompleteListenerlt;AuthResultgt;() { @Override public void onComplete( Tasklt;AuthResultgt; task) { if(task.isSuccessful()){ progressDialog.dismiss(); sendUserToNextActivity(); Toast.makeText(MainActivity.this,"Login", Toast.LENGTH_SHORT).show(); } else{ progressDialog.dismiss(); Toast.makeText(MainActivity.this,"" task.getException(), Toast.LENGTH_SHORT).show(); } } }); } } private void sendUserToNextActivity() { Intent intent = new Intent(getApplicationContext(), LoginActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK| Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); }
}
Используемый XML-код:
lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:background="@drawable/background_color" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"gt; lt;TextView android:id="@ id/tv_brand" android:layout_width="261dp" android:layout_height="93dp" android:layout_marginTop="124dp" android:text="Job Tinder" android:textColor="@color/tealgreen" android:textColorHighlight="@color/white" android:textSize="50sp" android:textStyle="bold" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.498" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /gt; lt;EditText android:id="@ id/provided_email" android:layout_width="350dp" android:layout_height="55dp" android:layout_marginTop="72dp" android:ems="50" android:background="@drawable/background_textview" android:hint="Ex: name@gmail.com" android:textColorHint="@color/black" android:inputType="textEmailAddress" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.491" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@ id/tv_brand" /gt; lt;EditText android:id="@ id/provided_pass" android:layout_width="350dp" android:layout_height="55dp" android:layout_marginTop="16dp" android:ems="50" android:background="@drawable/background_textview" android:inputType="textPassword" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.491" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@ id/provided_email" /gt; lt;android.widget.Button android:id="@ id/login_button" android:layout_width="300dp" android:layout_height="52dp" android:layout_marginTop="50dp" android:backgroundTint="@color/tealgreen" android:text="Login" android:background="@drawable/button_design" android:textSize="20dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@ id/provided_pass" /gt; lt;android.widget.Button android:id="@ id/register_button" android:layout_width="300dp" android:layout_height="52dp" android:layout_marginTop="16dp" android:text="Register" android:textSize="20dp" android:background="@drawable/button_design" android:backgroundTint="@color/teal_700" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@ id/login_button" /gt; lt;/androidx.constraintlayout.widget.ConstraintLayoutgt;
Надеясь, что может быть какое-то решение.
Комментарии:
1. Что вы подразумеваете под «Я уничтожил данные эмуляторов»?
2. @AlexMamo «В диспетчере AVD в Android studio есть возможность стереть данные пользователей для выбранного эмулятора Android. Это пространство занимало 20 ГБ, поэтому я решил «стереть данные пользователей», чтобы освободить место, когда firebase login больше не может распознать учетную запись, даже несмотря на то, что учетная запись все еще проходит аутентификацию в firebase Google»