如何限制 FirebaseRecyclerAdapter 从服务器拉取的项目?

How do I limit the items FirebaseRecyclerAdapter pulls from the server?

我正在使用教程项目,无法理解如何限制拉取的项目数。

您可以使用 DatabaseReferenceQuery 来初始化您的 FirebaseRecyclerAdapter。当您使用 DatabaseReference 时,适配器将显示该位置的所有数据。例如。 (来自FirebaseUI docs):

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
DatabaseReference chatRef = ref.child("chat_messages");

mAdapter = new FirebaseListAdapter<Chat>(this, 
                                         Chat.class, 
                                         android.R.layout.two_line_list_item, 
                                         chatRef) {
    @Override
    protected void populateView(View view, Chat chatMessage, int position) {
        ((TextView)view.findViewById(android.R.id.text1)).setText(chatMessage.getName());
        ((TextView)view.findViewById(android.R.id.text2)).setText(chatMessage.getText());

    }
};
messagesView.setAdapter(mAdapter);

要仅显示最后 5 条聊天消息,您需要创建一个查询并将其传递到适配器中:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
DatabaseReference chatRef = ref.child("chat_messages");
Query recentMessages = chatRef.limitToLast(5);

mAdapter = new FirebaseListAdapter<Chat>(this, 
                                         Chat.class, 
                                         android.R.layout.two_line_list_item, 
                                         recentMessages) {
    @Override
    protected void populateView(View view, Chat chatMessage, int position) {
        ((TextView)view.findViewById(android.R.id.text1)).setText(chatMessage.getName());
        ((TextView)view.findViewById(android.R.id.text2)).setText(chatMessage.getText());

    }
};
messagesView.setAdapter(mAdapter);

您可以使用 Firebase 数据库查询执行更多操作。阅读 documentation on sorting and filtering data 了解更多。