проверьте, совпадают ли данные счетчика с данными внутри базы данных

#java #android #firebase

#java #Android #firebase

Вопрос:

я пытаюсь перенаправить свой логин в соответствии со счетчиком, выбранным пользователем, но значение счетчика должно соответствовать значению внутри моей базы данных. У меня есть идея о том, как это сделать, но я все еще не могу найти способ ее закодировать. Я использую Android (Java) с firebase (аутентификация и база данных) для входа в приложение.

ниже приведена часть кода внутри моей MainActivity для счетчика

 spinRole.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long id) {
                if (adapterView.getItemAtPosition(i).equals("Role")){
                n = 0;
                }else if (adapterView.getItemAtPosition(i).equals("Teacher")){
                    role.setText(adapterView.getSelectedItem().toString());
                    //do another if else
                    //read from database and if data snapshot same with the item at position
                    n = 1;
                    //else n = 0;
                }else if (adapterView.getItemAtPosition(i).equals("Parent")){
                    role.setText(adapterView.getSelectedItem().toString());
                    //do another if else
                    //read from database and if data snapshot same with the item at position
                    n = 2;
                    //else n = 0;
                }
            }
            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
            }
        }); 
  

и вот как я вошел в систему

 else  if(!(emailID.isEmpty() amp;amp; pwd.isEmpty()) amp;amp; (n==1)) {
                    mFirebaseAuth.signInWithEmailAndPassword(emailID, pwd).addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            if (!task.isSuccessful()) {
                                Toast.makeText(MainActivity.this, "Login Error, Please Login Again", Toast.LENGTH_SHORT).show();
                            } else{
                                    Intent intTeacher = new Intent(MainActivity.this, TeacherActivity.class);
                                    startActivity(intTeacher);
                            }
                        }
                    });
                }
                else  if(!(emailID.isEmpty() amp;amp; pwd.isEmpty()) amp;amp; (n==2)) {
                    mFirebaseAuth.signInWithEmailAndPassword(emailID, pwd).addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            if (!task.isSuccessful()) {
                                Toast.makeText(MainActivity.this, "Login Error, Please Login Again", Toast.LENGTH_SHORT).show();
                            } else{
                                    Intent intParent = new Intent(MainActivity.this, ParentActivity.class);
                                    startActivity(intParent);
                            }
                        }
                    });
                }
                else{
                    Toast.makeText(MainActivity.this,"Error Occurred!",Toast.LENGTH_SHORT).show();

                }
  

Это мое первое кодирование с использованием Android и firebase, поэтому я почти ничего не знаю, кто-нибудь может мне помочь?

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

1. Попробуйте получить данные firebase в arraylist и установить их в качестве адаптера для счетчика, или, если вы не хотите, вы можете просто использовать arraylist.contains («запрос») и убедитесь, что данные принадлежат базе данных

2. Что именно в этом коде работает не так, как вы ожидаете?