но второй слушатель, я должен поместить это в onchange?

отаю с firebase в приложении для Android, и что-то странное произошло, в моем примере мне нужны два снимка, 1, чтобы получить пользователей внутри списка (я использую этот снимок, чтобы заполнить массив строк с ключом пользователя) и другой, по сравнению с пользователями, странное поведение в том, что мой массив списков пуст после первого снимка, я использовал logcat, чтобы проверить его, и что Log внутри firstsnapshot возвращает мне 1 в качестве размера массива, второй возвращает мне 0, не знаю, как он снова получает 0.

Вот мой код:

 private void prepareFriendList() {
        myRef.child(id).child("FriendLists").child(group).addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                String keyUser;
                for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                    Log.d("number:",snapshot.getKey());
                    keyUser = snapshot.getKey();
                    currentFriends.add(keyUser);
                    Log.d("hello",String.valueOf(currentFriends.size()));

                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

        for(String s: currentFriends){
            Log.d("idddd",s);
        }

        Log.d("hello",String.valueOf(currentFriends.size()));



        myRef.child(id).child("Users").addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot snapshot : dataSnapshot.getChildren()) {

                    User user = snapshot.getValue(User.class);

                    for(String item: currentFriends){
                        if (snapshot.getKey().equals(item)) {
                            usersList.add(user);
                        }
                    }
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

        mAdapter.notifyDataSetChanged();
    }

Я не понимаю, почему это происходит, так как я добавляю ключ в массив, любой совет?

Ответы на вопрос(1)

Ваш ответ на вопрос