在从FirebaseRecyclerAdapter填充视图之前过滤数据

时间:2016-08-22 10:07:09

标签: android firebase firebase-realtime-database firebaseui

从FireChat应用程序中获取参考我在我的应用程序中使用了FirebaseRecyclerAdapter,它工作正常,但我需要过滤等于特定用户ID的数据。

在populateView中,如果我这样做,数据会被过滤,但也会创建一个空白的回收商项目项。

mFirebaseAdapter = new FirebaseRecyclerAdapter<Tags, TagsViewHolder>(
            Tags.class,
            R.layout.item_message,
            TagsViewHolder.class,
            mFirebaseDatabaseReference.child("tags")) {

        @Override
        protected void populateViewHolder(TagsViewHolder viewHolder, Tags tags, int position) {
            mProgressBar.setVisibility(ProgressBar.INVISIBLE);
            if((tags.getUserid()).equals(mFirebaseUser.getUid()))
            viewHolder.tagTextView.setText(tags.getTagname());
        }
    };

在创建视图之前,我有什么方法可以过滤它吗?

我的POJO课程是:

    public class Tags {
    private String userid;
    private String tagname;
    private HashMap<String, Object> timestampCreated;

    public Tags() {
    }

    public Tags(String userid, String tagname, HashMap<String, Object> timestampCreated) {
        this.userid = userid;
        this.tagname = tagname;
        this.timestampCreated = timestampCreated;
    }

    public String getUserid() {
        return userid;
    }

    public String getTagname() {
        return tagname;
    }

    public HashMap<String, Object> getTimestampCreated() {
        return timestampCreated;
    }
}

谢谢!

1 个答案:

答案 0 :(得分:2)

客户端过滤是FirebaseUI的开放功能请求。请参阅https://github.com/firebase/FirebaseUI-Android/issues/15

客户端数据过滤,意味着应用程序首先下载数据,然后不向用户显示。这很浪费,如果您的应用只下载显示给他们的数据,大多数移动应用用户会很感激。

处理显示数据子集的最佳方法是以某种方式对数据建模,以便您可以直接访问要显示的数据子集,或使用Firebase queries to limit the data that is retrieved。< / p>