Да, это так. Вы можете хранить все URL-адреса изображений в базе данных Firebase Realtime, и когда вы хотите получить определенное количество случайных изображений, используйте мой ответ из этой записи .
Предполагая, что у вас есть база данных Firebase, которая выглядит следующим образом:
Firebase-root
|
--- imageUrls
|
--- HollandImageUrl: true
|
--- SpainImageUrl: true
|
--- FranceImageUrl: true
|
--- //Other Countries
Чтобы получить 5 случайных URL, используйте следующий код:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference imageUrlsRef = rootRef.child("imageUrls");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<String> urlList = new ArrayList<>();
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String url = ds.getKey();
urlList.add(url);
}
int urlCount = urlList.size();
int randomNumber = new Random().nextInt(urlCount);
List<String> randomUrlList = new ArrayList<>();
for (int i=1; i<=5; i++) {
randomUrlList.add(urlList.get(randomNumber));
//Set image to ImageView
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
imageUrlsRef.addListenerForSingleValueEvent(valueEventListener);
В соответствии с вашим комментарием и структурой вашей базы данных, пожалуйста, используйте следующий код:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference countriesRef = rootRef.child("countries");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<String> urlList = new ArrayList<>();
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String url = ds.child("Image").getValue(String.class);
urlList.add(url);
}
int urlCount = urlList.size();
int randomNumber = new Random().nextInt(urlCount);
List<String> randomUrlList = new ArrayList<>();
for (int i=1; i<=5; i++) {
randomUrlList.add(urlList.get(randomNumber));
//Set image to ImageView
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
countriesRef .addListenerForSingleValueEvent(valueEventListener);