我正在構建一個聊天應用程序。我的Firebase數據庫中有一個特定的節點,用於存儲此用戶與其他人(消息列表)之間的對話。我使用FirebaseUI的一部分FirebaseRecyclerAdapter將這些消息加載到我的應用程序中。它工作得很好,但我擔心縮放。如果一個對話說有20,000個消息(許多對話做!)會加載嗎? Firebase是一次或分批加載Firebase數據庫中的這些數據嗎?
如果沒有我如何準確加載數據批量到一個RecylcerView(如果有1000個項目,最初1000 - 980,當用戶向上滾動980 - 960等)我明白,我可以使用endAt()和limitToLast ()函數將數據批量加載到數據源(ArrayList)中,但是如何實現一個RecyclerView以批量加載?FirebaseRecyclerAdapter(來自FirebaseUI數據庫)是否從批處理列表(在Firebase數據庫中)批量加載數據?
recyclerView.setHasFixedSize(true);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
linearLayoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(linearLayoutManager);
final DatabaseReference databaseReference = /*Database Reference */ ;
databaseReference.keepSynced(true);
firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Chat, RecyclerView.ViewHolder>(Chat.class, R.layout.chat_message_received, RecyclerView.ViewHolder.class, databaseReference.orderByChild("timeStamp").getRef()) {
//...Code
};
recyclerView.setAdapter(firebaseRecyclerAdapter);
recyclerView.scrollToPosition(firebaseRecyclerAdapter.getItemCount() - 1);