Ваше приложение дает сбой, потому что если список пуст, значит, нет позиции для метода get()
.
Вы должны либо проверить, имеет ли список действительную длину, а затем заполнить imageViews, но тогда вы можете иметь 1 изображение, 2 изображения, 3 или более, так что вы можете подумать о некотором обходном пути, например, создать список изображений для заполнения.
List<ImageView> imageViewList = new ArrayList<>();
imageViewList.add(firstPhoto);
imageViewList.add(secondPhoto);
imageViewList.add(thirdPhoto);
for (DataSnapshot childDataSnapshot: dataSnapshot.getChildren()) {
ArrayList <String> list = new ArrayList<>();
for (DataSnapshot ing: childDataSnapshot.child("postimg").getChildren()) {
list.add(ing.getValue().toString());
}
int index = 0;
for(ImageView imageView : imageViewList) {
if(index == list.size()) break;
Picasso.get().load(list.get(index)).into(imageView);
index++;
}
}
Но, опять же, помните, что если будет 4 изображения и у вас будет 3 imageViews, произойдет сбой, поскольку в imageViewList не будет четвертого элемента