#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. Что именно в этом коде работает не так, как вы ожидаете?