【问题标题】:How do I limit the items FirebaseRecyclerAdapter pulls from the server?如何限制 FirebaseRecyclerAdapter 从服务器拉取的项目?
【发布时间】:2016-07-15 23:51:03
【问题描述】:

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

【问题讨论】:

    标签: android firebase firebase-realtime-database firebaseui


    【解决方案1】:

    您可以使用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了解更多信息。

    【讨论】:

    • 谢谢你的朋友。我是 Firebase 的新手,到目前为止我很享受。我看到我可以在查询时进行限制,只是没想到我可以将查询与构造函数分开。
    猜你喜欢
    • 2017-01-14
    • 2017-06-18
    • 1970-01-01
    • 2020-01-24
    • 2013-07-20
    • 2017-02-20
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    相关资源
    最近更新 更多