첫 번째 활동은 RecyclerView + Firestore가 사용되는 뉴스 피드 화면입니다. 설정 오프라인 옵션이 활성화되어 있습니다.캐시 된 데이터 복구 RecyclerView + Firestore
문제 :
이 응용 프로그램 홈 페이지와 뉴스 방송이기 때문에, 내가 내부적으로 스캔하면서 경우 FireStore 데이터를 검색 캐시 된 데이터를 표시하는 응용 프로그램을하고 싶습니다. Instagram, Twitter 등 ...
현재이 활동을 열 때 Firestore Query라고 불리며 RecyclerView로 데이터를 마운트했습니다.
Firestore의 새 데이터가로드되는 동안 Recyclerview의 마지막 업데이트에 대한 캐시 된 데이터를 표시하는 방법이 있습니다.
인터넷 연결이 모바일 일 때 우리 나라에서는 품질이 매우 좋지 않기 때문에. 그리고 처음에 Recyclerview를 호출하면 연결이 안정 될 때까지 장시간 로딩 Progressbar가 생깁니다.
내 코드는 다음과 같습니다 어댑터 경우 FireStore + RecyclerView
편집 코드 :
/*Firebase*/
mDb = FirebaseFirestore.getInstance();
mDb.collection("IndexTimeline_User").document(mCurrentUser.getUid()).collection("Posts").get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot documentSnapshots) {
mQuery = documentSnapshots.getQuery();
mCardFeedList.setAdapter(mAdapter);
}
});
mDb.setFirestoreSettings(settings);
/* Recycler */
mCardFeedList = (RecyclerView) view.findViewById(R.id.explore_tab1_list);
mCardFeedList.setHasFixedSize(true);
mCardFeedList.setItemViewCacheSize(20);
mCardFeedList.setDrawingCacheEnabled(true);
mAdapter = new PostsExploreTab1Adapter(mQuery, this){
@Override
protected void onDataChanged() {
if (getItemCount() == 0) {
mCardFeedList.setVisibility(View.GONE);
mProgressBar.setVisibility(View.GONE);
//mTxtVazio.setVisibility(View.VISIBLE);
} else {
mCardFeedList.setVisibility(View.VISIBLE);
mProgressBar.setVisibility(View.GONE);
//mTxtVazio.setVisibility(View.GONE);
}
}
};
llmanager = new LinearLayoutManager(getActivity());
mCardFeedList.setLayoutManager(llmanager);
/*INICIADO O RECYCLERVIEW E ADAPTER*/
if (mAdapter != null) {
mAdapter.startListening();
}
감사합니다.
여기에서 질문을합니까? 그런 다음 쿼리를 설정 하시겠습니까? ("Posts");) @AlexMamo – TiagoIB
만약 'yourRef'가'yes '와 같으면'get()'메서드를 사용하십시오 (mQuery = mDb.collection ("IndexTimeline_User" 그리고 나서'addOnSuccessListener'를 호출합니다. –
내 참조는 질문과 정확히 일치합니다. 작동합니까? http://prntscr.com/hqj4zt @AlexMamo – TiagoIB