Заполните RecyclerView с изображениями из коллекции Firestore - PullRequest
0 голосов
/ 01 октября 2018

Я знаю, как это сделать в базе данных 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));
   }

1 Ответ

0 голосов
/ 01 октября 2018

Да, есть.Предполагая, что у вас есть структура базы данных в 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 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...