Заполните RecyclerView изображениями из коллекции Firestore

Я знаю, как это сделать в базе данных Firebase Real-Time, но поскольку я пытаюсь реализовать только Firestore, я столкнулся с дилеммой.

Вопрос такой: Есть ли способ сделать это в Firestore?

 final ArrayList<Photo> photos = new ArrayList<>();

  DatabaseReference reference = 
  FirebaseDatabase.getInstance().getReference();
  Query query = reference
            .child("user_photos")
            .child(userID);

  query.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for ( DataSnapshot singleSnapshot :  dataSnapshot.getChildren()){
                photos.add(singleSnapshot.getValue(Photo.class));
   }
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
401
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Да, есть. Предполагая, что у вас есть структура базы данных в Firestore, которая выглядит следующим образом:

Firestore-root
    |
    --- user_photos (collection)
           |
           --- userID (document)
                 |
                 --- //document details

Код для получения всех документов в коллекции user_photos должен выглядеть так:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference userPhotoRef = rootRef.collection("user_photos");
userPhotoRef.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
    @Override
    public void onComplete(@NonNull Task<QuerySnapshot> task) {
        if (task.isSuccessful()) {
            List<Photo> list = new ArrayList<>();
            for (DocumentSnapshot document : task.getResult()) {
                Log.d(TAG, document.getId() + " => " + document.getData());

                if (document.exists()) {
                    Photo photo = document.toObject(Photo.class);
                    list.add(photo); //Add Photo object to the list
                }

                //Do what you need to do with your list
            }
        } else {
            Log.d(TAG, "Error getting documents: ", task.getException());
        }
    }
});

См. Дополнительную информацию о получение данных из Cloud Firestore.

Вы, сэр, герой, который мне был нужен, но не тот, которого я заслужил. Спасибо.

newbieCoder.pkg 01.10.2018 18:25

Другие вопросы по теме