но второй слушатель, я должен поместить это в 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();
}
Я не понимаю, почему это происходит, так как я добавляю ключ в массив, любой совет?