У меня возникли проблемы с выяснением того, как получить количество элементов / дочерних элементов в моей базе данных Firebase в реальном времени, чтобы мое приложение могло использовать его в качестве значения int .
Проверьте изображение ниже:
![enter image description here](https://i.stack.imgur.com/BMrHO.png)
Итак, как вы можете видеть выше, у меня есть 2 ребенка из images_list .
Что я хочу сделать, это : получить количество элементов / дочерних элементов images_list , возвращаемых в мое приложение, которое, очевидно, изначально будет равно 2, и будет увеличивать это число всякий раз, когда я добавить больше предметов / детей.
Итак, мой вопрос: Какой код я реализую, чтобы получить количество детей в этой базе данных ? И как я мог тогда преобразовать это число в значение int? Я уже экспериментировал с разными методами, но пока не нашел решения.
Надеюсь, это имело смысл. Большое спасибо за любую вашу помощь!
Кодовое решение здесь; Мне пришлось переместить большую часть этого кода из моего адаптера RecyclerView в мой MainActivity, чтобы он работал
Интерфейс
public interface FirebaseCallback {
void onCallback(List<String> list);
}
метод readData
private void readData(final FirebaseCallback firebaseCallback) {
mDatabaseImagesRef = FirebaseDatabase.getInstance().getReference("images_list");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
String imageItems = ds.getValue(String.class);
imageList.add(imageItems);
}
firebaseCallback.onCallback(imageList);
Log.i("imageList.size() is: ", String.valueOf(imageList.size()));
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.i(LOG_TAG, databaseError.getMessage());
}
};
mDatabaseImagesRef.addListenerForSingleValueEvent(valueEventListener);
}
вызывается onCreate()
readData(new FirebaseCallback() {
@Override
public void onCallback(List<String> list) {
mImageAdapter.notifyDataSetChanged();
}
});
getItemCount () в RecyclerViewAdapter
@Override
public int getItemCount() {
return imagesList.size();
}