Как исправить Установщик / поле для идентификатора не найдено в классе com.example.chatappfirebase.Model.User? - PullRequest
0 голосов
/ 27 марта 2020

, пытаясь вытащить всех пользователей из моей базы данных Firebase, а затем отобразить их в моем приложении, я получаю сообщение об ошибке

No setter/field for id found on class com.example.chatappfirebase.Model.User

, но мои методы получения и установки класса пользователя создаются из android studio

мой код класса пользователя:

package com.example.chatappfirebase.Model;


public class User {

    private String userId;
    private String username;
    private String ImageURL;

    public User(String userId, String username, String imageURL) {
        this.userId = userId;
        this.username = username;
        ImageURL = imageURL;
    }

    public User() {
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUsername() {
        return username;
    }

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

    public String getImageURL() {
        return ImageURL;
    }

    public void setImageURL(String imageURL) {
        ImageURL = imageURL;
    }
}

, когда я пытаюсь извлечь список пользователей из базы данных

    final FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
    DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users");
    reference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            users.clear();
            for(DataSnapshot snapshot: dataSnapshot.getChildren()) {
                User user = snapshot.getValue(User.class);
                    assert user != null;
                    assert firebaseUser != null;
                    if (!user.getUserId().equals(firebaseUser.getUid())) {
                        users.add(user);
                    }

            }

            userAdapter = new UserAdapter(getContext(), users);


   recyclerView.setAdapter(userAdapter);
            }

enter image description here

 java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
        at com.example.chatappfirebase.Fragments.UsersFragment$1.onDataChange(UsersFragment.java:65)

это строка кода:

if (!user.getUserId().equals(firebaseUser.getUid())) {}

1 Ответ

0 голосов
/ 27 марта 2020

Прочитайте ответ для объяснения.

public class User {

    private String id;
    private String username;
    private String imageURL;

    public User(String id, String username, String imageURL) {
        this.id = id;
        this.username = username;
        imageURL = imageURL;
    }

    public User() {
    }

    public String getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

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

    public String getImageURL() {
        return imageURL;
    }

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