FirebaseRecyclerAdapter(来自FirebaseUI数据库)是否批量加载列表中的数据(在Firebase数据库中)?

时间:2017-09-26 15:00:41

标签: android firebase firebase-realtime-database android-recyclerview firebaseui

我正在构建一个聊天应用。我的Firebase数据库中有一个特定节点,用于存储此用户与其他人的对话(消息列表)。我使用FirebaseRecyclerAdapter加载这些消息,这是FirebaseUI的一部分。它工作得很好,但我担心缩放。如果一个对话要说有20,000条消息(许多对话都会这样做!)它会加载吗? Firebase是一次性还是批量加载来自Firebase数据库的数据? 如果没有,我究竟如何将数据批量加载到RecylcerView中(如果有1000个项目,最初是1000 - 980,当用户向上滚动980 - 960等时)我明白我可以使用endAt()和limitToLast()将数据批量加载到数据源(ArrayList)中的函数,但是如何实现批量加载的RecyclerView?

    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);

1 个答案:

答案 0 :(得分:0)