В моем приложении я могу войти как пользователь или администратор. Я могу успешно войти в систему как пользователь, но я получаю сообщение об ошибке при попытке войти в систему как администратор в моем приложении. Даже если я ввожу правильные учетные данные, меня перенаправляют на Launcheractivity Ошибка говорит, что не может конвертировать Long в String, но я нигде не использовал Long. Структура базы данных
loginactivity
public class loginActivity extends AppCompatActivity {
private EditText InputPhoneNumber, InputPassword;
private Button LoginButton;
private ProgressDialog loadingBar;
private TextView AdminLink, NotAdminLink;
private String parentDbName = "Users";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
LoginButton = (Button) findViewById(R.id.Login_btn);
InputPassword = (EditText) findViewById(R.id.login_Password_input);
InputPhoneNumber = (EditText) findViewById(R.id.login_phone_number_input);
AdminLink = (TextView) findViewById(R.id.admin_panel_link);
NotAdminLink = (TextView) findViewById(R.id.not_admin_panel_link);
loadingBar = new ProgressDialog(this);
Paper.init(this);
LoginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
LoginUser();
}
});
AdminLink.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
LoginButton.setText("Login Admin");
AdminLink.setVisibility(View.INVISIBLE);
NotAdminLink.setVisibility(View.VISIBLE);
parentDbName = "Admins";
}
});
NotAdminLink.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
LoginButton.setText("Login");
AdminLink.setVisibility(View.VISIBLE);
NotAdminLink.setVisibility(View.INVISIBLE);
parentDbName = "Users";
}
});
}
private void LoginUser()
{
String phone = InputPhoneNumber.getText().toString();
String password = InputPassword.getText().toString();
if(TextUtils.isEmpty(phone))
{
Toast.makeText(this, "Please write your phone...", Toast.LENGTH_SHORT).show();
}
else if(TextUtils.isEmpty(password))
{
Toast.makeText(this, "Please write your password...", Toast.LENGTH_SHORT).show();
}
else
{
loadingBar.setTitle("Login Account");
loadingBar.setMessage("Please wait, while we are Checking the Credential");
loadingBar.setCanceledOnTouchOutside(false);
loadingBar.show();
AllowAccessAccount(phone, password);
}
}
private void AllowAccessAccount(final String phone, final String password)
{ final DatabaseReference RootRef;
RootRef = FirebaseDatabase.getInstance().getReference();
RootRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
{
if(dataSnapshot.child(parentDbName).child(phone).exists())
{
Users usersData = dataSnapshot.child(parentDbName).child(phone).getValue(Users.class);
if (usersData != null)
{
if (usersData.getPhone().equals(phone))
{
if (usersData.getPassword().equals(password))
{
if (parentDbName.equals("Admins"))
{
Toast.makeText(loginActivity.this, "Welcome Admin, you are Logged in Successfully..", Toast.LENGTH_SHORT).show();
loadingBar.dismiss();
Intent intent = new Intent(loginActivity.this, AdminCategoryActivity.class);
startActivity(intent);
}
else if (parentDbName.equals("Users"))
{
Toast.makeText(loginActivity.this, "Logged in Successfully..", Toast.LENGTH_SHORT).show();
loadingBar.dismiss();
Intent intent = new Intent(loginActivity.this, HomeActivity.class);
Prevalent.currentOnlineUser = usersData;
startActivity(intent);
}
}
}
else
{
Toast.makeText(loginActivity.this, "Password is Incorrect..", Toast.LENGTH_SHORT).show();
loadingBar.dismiss();
}
}
}
else
{
Toast.makeText(loginActivity.this,"Account with This" + phone + " number do not exist", Toast.LENGTH_SHORT).show();
loadingBar.dismiss();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError)
{
}
});
}
}
Ошибка, отображаемая в Logcat
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.ecommerce1, PID: 4921
com.google.firebase.database.DatabaseException: Failed to convert value of type java.lang.Long to String at com.example.ecommerce1.loginActivity$4.onDataChange(loginActivity.java:123)
Пользователь (класс модели)
package com.example.ecommerce1.Model;
public class Users {
private String name, phone, password, image,address;
public Users()
{
}
public Users(String name, String phone, String password, String image, String address)
{
this.name = name;
this.phone = phone;
this.password = password;
this.image = image;
this.address = address;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}