Второй порядок запросов в FireStore не работает при переходе на другой фрагмент - PullRequest
0 голосов
/ 09 марта 2019

когда я ненадолго перехожу к действию и снова возвращаюсь к фрагменту ... все хорошо, .orderBy во фрагменте работает отлично, РАСХОДЯЩАЯ и .limit(5) загрузка 10 фотографий работает, да, 10 фотографий. Но пока я не перейду на home fragment с помощью Bottom Navigation, я снова вернусь к profile fragment, что произойдет .. orderBy в profile fragment станет Восходящим и не будет работать как первый и загрузит только 5 фотографий. а затем я пытаюсь перейти к activity и обратно к profile fragment .. orderBy и .limit работает хорошо, спускается и загружает 10 фотографий отлично, 5 на 5.

Мне интересно, в чем проблема? Это похоже на то, что мне не удается вызвать onStart() в profile fragment классе, когда я перехожу к другому фрагменту и снова возвращаюсь к profile fragment, но я не могу найти решения для этого, кроме как перейти на некоторое время к активности и вернуться к profile fragment и он вызовет меня во фрагменте профиля onStart() метод отлично. Потому что fragment to fragment не звонит onStart() отлично. и activity to fragment вызывает onStart() inside fragment префект. , и я сожалею раньше, потому что если это не проблема пожарного. Похоже, я не понимаю жизненный цикл действия, и как перезапустить или возобновить фрагмент, я все еще ищу сейчас и не отвечаю должным образом. и до сих пор учат эти посты ..

Метод обновления содержимого фрагмента при изменении данных (например, вызов onCreateView)

Обновить фрагмент при перезагрузке

Я извлекаю 10 фотографий из магазина в классе profile fragment, чтобы загрузить их в вид переработчика. и этот код в проблеме, как я упоминал выше:

@Override
public void onStart() {
   super.onStart();

   contentList.clear();

   if (firebaseAuth.getCurrentUser() != null) {

     recyclerSeen.addOnScrollListener(new RecyclerView.OnScrollListener() {
       @Override
       public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
                    super.onScrolled(recyclerView, dx, dy);

                    Boolean reachBottom = !recyclerView.canScrollVertically(-1);

                    if (reachBottom) {

                        loadMorePost();
                    }
                }
            });

            // RETRIEVING ALL PHOTOS
            Query firstQuery = firebaseFirestore
                    .orderBy("timestamp", Query.Direction.DESCENDING)
                    .limit(5);
                      firstQuery.addSnapshotListener(new EventListener<QuerySnapshot>() {
                @Override
                public void onEvent(QuerySnapshot documentSnapshots, FirebaseFirestoreException e) {

                    if (isFirstPageFirstLoad) {
                        lastVisible = documentSnapshots.getDocuments().get(documentSnapshots.size() - 1); // array 0, 1, 2
                    }

                    for (DocumentChange doc : documentSnapshots.getDocumentChanges()) {

                        if (doc.getType() == DocumentChange.Type.ADDED) {

                            //String postId = doc.getDocument().getId();
                            ContentProfile contentSeen = doc.getDocument().toObject(ContentProfile.class);

                            /* how to store multi ArrayList */

                            if (isFirstPageFirstLoad) {
                                contentList.add(contentSeen);
                            } else {
                                contentList.add(0, contentSeen);
                            }

                            adapterSeen.notifyDataSetChanged();
                        }
                    }

                    isFirstPageFirstLoad = false;
                }
            });
        }


    }

    public void loadMorePost() {

        Query nextQuery = firebaseFirestore
                .collection("ProfileDashboard")
                // .document(currentUserId)
                // .collection("seenBy")
                .orderBy("timestamp", Query.Direction.DESCENDING)
                .startAfter(lastVisible)
                .limit(5);

        nextQuery.addSnapshotListener(new EventListener<QuerySnapshot>() {
            @Override
            public void onEvent(QuerySnapshot documentSnapshots, FirebaseFirestoreException e) {

                if (!documentSnapshots.isEmpty()) {

                    lastVisible = documentSnapshots.getDocuments().get(documentSnapshots.size() - 1);
                    for (DocumentChange doc : documentSnapshots.getDocumentChanges()) {

                        if (doc.getType() == DocumentChange.Type.ADDED) {

                            //String postId = doc.getDocument().getId();
                            ContentProfile contentSeen = doc.getDocument().toObject(ContentProfile.class);
                            contentList.add(contentSeen);

                            adapterSeen.notifyDataSetChanged();

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