Как мне получить список строк имени пользователя и полного имени из firebase? - PullRequest
0 голосов
/ 22 апреля 2019

В java-классе я использовал для тестирования случайное имя пользователя и полное имя, но теперь я хочу получить список имени пользователя и полного имени пользователя, который является дочерним элементом текущего пользователя в узле Mates в firebase.

public class User
{

    public String fullname;
    public String username;




      public User()
        {
            FirebaseAuth mAuth=FirebaseAuth.getInstance();
            String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
            DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
            DatabaseReference uidRef = rootRef.child("Mates").child(uid);
            ValueEventListener valueEventListener = new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    List<User> USERS = new ArrayList<>();
                    for(DataSnapshot ds : dataSnapshot.getChildren()) {
                        User user = ds.getValue(User.class);
                        USERS.add(user);
                        Log.d(TAG, user.getUsername() + " / " + user.getFullname());
                    }

                    //Do what you need to do with your userList
                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {
                    Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
                }
            };
            uidRef.addListenerForSingleValueEvent(valueEventListener);
        }

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


        public String getFullname() {
            return fullname;
        }

        public String getUsername() {
            return username;
        }

        public static List<User> USERS ;

    }

Я хочу заменить этого пользователя на firebase пользователя, который является дочерним по отношению к текущему пользователю, здесь я разместил свой образ базы данных.

enter image description here

Ответы [ 3 ]

0 голосов
/ 23 апреля 2019

Атрибуты вашего класса могут быть private, иначе вы получите ошибку при получении данных из Firebase.Перейдите по этой ссылке для работы со списком https://firebase.google.com/docs/database/android/lists-of-data?authuser=0

0 голосов
/ 23 апреля 2019

Согласно вашему комментарию, чтобы получить все пользовательские объекты, которые существуют в Mates/uid, используйте следующие строки кода:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("Mates").child(uid);
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        List<User> userList = new ArrayList<>();
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            User user = ds.getValue(User.class);
            userList.add(user);
            Log.d(TAG, user.getUsername() + " / " + user.getFullname());
        }

        //Do what you need to do with your userList
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
    }
};
uidRef.addListenerForSingleValueEvent(valueEventListener);

Выходными данными в logcat будут все имена пользователей и полные имена всехпользователи, которые существуют в uid.

0 голосов
/ 23 апреля 2019

дают понять, что вы хотите заменить полное имя, имя пользователя из класса java на firebase. право ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...