首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何限制FirebaseRecyclerAdapter从服务器拉取的项目?

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

Stack Overflow用户
提问于 2016-07-15 20:11:09
回答 1查看 1.1K关注 0票数 0

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-15 23:01:06

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

代码语言:javascript
代码运行次数:0
运行
复制
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条聊天消息,您需要创建一个查询并将其传递给适配器:

代码语言:javascript
代码运行次数:0
运行
复制
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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38395805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档