Приложение для Android не будет переходить к следующему действию после входа в систему или регистрации

# #java #android #firebase-realtime-database

Вопрос:

Когда я пытаюсь перейти к следующему действию, нажав кнопку «Регистрация» на странице регистрации или войдите на страницу журнала, когда пользователь уже существует, приложение просто завершает работу и выдает ошибку.

Действие регистрации // переменная заключительная строка ТЕГА =»Регистрация»; имя редактирования частного MaterialEditText; пароль редактирования частного MaterialEditText;

 //DECLARING amp; INITIALISING BUTTON TO SIGN UP FButton sign_Up;   final String KEY_NAME = "name"; final String KEY_PASSWORD ="password"; final String KEY_MARKS ="marks";   private FirebaseFirestore db = FirebaseFirestore.getInstance(); private DocumentReference user_reference = db.document("Users/Users details");  @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.sign_up);   //INITIALISING THE EDITTEXT VIEWS  edit_name = findViewById(R.id.editName);  edit_password = findViewById(R.id.editPassword);  sign_Up = findViewById(R.id.btn_signUp);   sign_Up.setOnClickListener(view -gt;  {  user_reference.get()  .addOnSuccessListener(new OnSuccessListenerlt;DocumentSnapshotgt;()  {  Maplt;String, Objectgt; users = new HashMaplt;gt;();  String name = edit_name.getText().toString();  String password = edit_password.getText().toString();   @Override  public void onSuccess(DocumentSnapshot documentSnapshot)  {  if(documentSnapshot.exists())  { // GETTING INFORMATION FROM FIRESTORE DATABASE  name = documentSnapshot.getString(KEY_NAME);  password = documentSnapshot.getString(KEY_PASSWORD);  Toast.makeText(sign_up.this, "This user already exist, Try again", Toast.LENGTH_LONG).show();  }  else  {  users.put(KEY_NAME,name);  users.put(KEY_PASSWORD, password);   db.collection("Users").document(name).set(users);  Toast.makeText(sign_up.this,"Registered",Toast.LENGTH_LONG).show();  Intent i = new Intent(sign_up.this,sum_selection.class);  startActivity(i);   }    }// END OF ONSUCCESS  })  .addOnFailureListener(new OnFailureListener()  {   @Override  public void onFailure(@NonNull Exception e)  {  Toast.makeText(sign_up.this, "Error",Toast.LENGTH_LONG).show();  Log.d(TAG,e.toString());   }  });  

Войдите в действие

   private MaterialEditText user_name;  private MaterialEditText user_password;  FButton sign_in;   private FirebaseFirestore database = FirebaseFirestore.getInstance();  private DocumentReference user_reference = database.document("Users/users details");   final String KEY_NAME = "name";  final String KEY_PASSWORD = "password";   @Override  protected void onCreate(Bundle savedInstanceState)  {  super.onCreate(savedInstanceState);  setContentView(R.layout.login);   sign_in = findViewById(R.id.btn_sign_in);    sign_in.setOnClickListener(new View.OnClickListener()  {   @Override  public void onClick(View view) // log in button  {  user_reference.get()  .addOnSuccessListener(new OnSuccessListenerlt;DocumentSnapshotgt;()  {  @Override  public void onSuccess(DocumentSnapshot documentSnapshot)  {  if(documentSnapshot.exists())  {  Toast.makeText(log_in.this,"Welcome"  user_name, Toast.LENGTH_LONG).show();   // ADD INTENT TO GO TO THE SUM_SELECTION PAGE  Intent in = new Intent(log_in.this, sum_selection.class);  startActivity(in);  }  else  {  // DISPLAY ERROR MESSAGE TO USER  Toast.makeText(log_in.this, "User does not exist", Toast.LENGTH_LONG).show();  }   }  })  .addOnFailureListener(new OnFailureListener()  {  @Override  public void onFailure(@NonNull Exception e)  {  Log.d(TAG, e.toString());  }  }); ```       [Error message][1]    [1]: https://i.stack.imgur.com/8gR62.png  

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

1. Пожалуйста, поделитесь полученной ошибкой.

Ответ №1:

 Intent i = new Intent((this/activity),LoginActivity.class); (this/activity).startActivity(i);    

Проверьте свое намерение правильно, Намерение принимает текущую активность в качестве первого параметра, а активность, которую вы хотите загрузить, — в качестве второго параметра. Кроме того, позвоните startActivity(i) из activity context -за того, что в данный момент вы находитесь в контексте Firebase Listener .

Кроме того, опубликуйте журнал ошибок.

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

1. Большое спасибо, я просто добавил изображение ошибки. Надеюсь, вы сможете это увидеть

2. E/libc: Отказано в доступе к свойству поиска «runtime.mmitest.isrunning», попробуйте приложение на другом устройстве. Убедитесь, что ваша активность должна расширять «AppCompatActivity «.

3. Это все равно не позволит мне перейти к следующему занятию. Может ли это быть сама кнопка в качестве виджета info.hoang8f. Кнопка f

4. Попробую Ронмана, Спасибо

5. Решение не соответствует проблеме. Также в деятельности, которую вам не нужно специально писать (this/activity).startActivity(i) .