Почему я не могу получить имя пользователя и пароль из базы данных Firebase в реальном времени - PullRequest
2 голосов
/ 25 марта 2019

Я хочу войти в систему, используя имя пользователя и пароль, которые хранятся в базе данных Firebase в реальном времени. Но мой код не работает. Я включаю мою базу данных изображения и код. Пожалуйста, помогите мне.

Это изображение базы данных:

enter image description here

Это мой основной код активности MainActivity.java

databaseReference=FirebaseDatabase.getInstance().getReference("Client");
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Query query = databaseReference.child("Client").orderByChild("username").equalTo(editTextUsername.getText().toString().trim());
            query.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {

                        for (DataSnapshot user : dataSnapshot.getChildren()) {
                            Users usersBean = user.getValue(Users.class);
                            if (usersBean.password.equals(editTextPassword.getText().toString().trim())) {
                                Toast.makeText(MainActivity.this, "success", Toast.LENGTH_SHORT).show();
                            } else {
                                Toast.makeText(MainActivity.this, "wrong", Toast.LENGTH_SHORT).show();
                            }
                        }
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });
        }
    });

Вот мои пользователи java класс Users.java

    public class Users {
    String email;
    String id;
    String password;
    String username;

    public Users() {

    }

    public Users(String email, String id, String password, String username) {
        this.email = email;
        this.id = id;
        this.password = password;
        this.username = username;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }
}

1 Ответ

2 голосов
/ 25 марта 2019

Чтобы решить эту проблему, измените следующую строку кода:

databaseReference=FirebaseDatabase.getInstance().getReference("Client");

до

databaseReference=FirebaseDatabase.getInstance().getReference();

Нет необходимости получать ссылку на узел Client, так как вы используете в своем запросе вызов .child("Client").

Edit:

Чтобы устранить ошибку, полученную сейчас, согласно вашему комментарию, измените тип вашего свойства id в вашем классе Users с String на long, а также метод получения и установки, например:

public class Users {
    String email;
    long id;
    String password;
    String username;

    public Users() {

    }

    public Users(String email, long id, String password, String username) {
        this.email = email;
        this.id = id;
        this.password = password;
        this.username = username;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...