# #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)
.