如何从Firebase查询此数据并将其设置为FirebaseRecyclerOptions

时间:2020-03-21 11:26:29

标签: android firebase firebase-realtime-database

This is the structure of my data at firebase Realtime database

所以有成员,而且每个人都按月提交费用,所以我为 他们的费用记录使结构更平坦。

在“费用”下,顶级键是记录所属的成员的键,这样我就可以 查询特定成员的记录,然后在其中有费用记录,这些记录具有自己的密钥, 所以我怎么只查询费用记录。

因为它想获取FirebaseRecyclerAdaper中唯一的费用数据 到目前为止,我所做的是。

 Query baseQuery = FireBaseHandler.getInstance(getActivity()).getFeeReference();
    FirebaseRecyclerOptions<FeeRecord> options = new FirebaseRecyclerOptions.Builder<FeeRecord>()
            .setLifecycleOwner(this)
            .setQuery(baseQuery,FeeRecord.class)
            .build();

    mAdapter = new FirebaseRecyclerAdapter<FeeRecord,Holder>(options) {

        @Override
        protected void onBindViewHolder(@NonNull final Holder holder, int i, @NonNull FeeRecord feeRecord) {

        }
        @NonNull
        @Override
        public Holder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            LayoutInflater inflater = LayoutInflater.from(getActivity());
            return new Holder(inflater,parent);
        }

但是这里的baseQuery只返回收费下的所有内容并将它们发送到回收站适配器,但是它仅返回两个孩子,您可以在上面的结构中看到为什么。如何获得这两个孩子中的feeRecords并将它们放置在回收者视图中。

还是建议您更改结构

感谢进阶

1 个答案:

答案 0 :(得分:1)

FirebaseUI中的适配器用于显示实时数据库中的单个数据平面列表。因此,在您的数据模型中,他们可以显示用户列表(/fees之下的节点),也可以显示一个特定用户的费用(一个/fees/$pushid之下的节点)的费用。

FirebaseUI适配器无法显示树中的所有节点,或者至少在没有重大修改的情况下不能显示。

我建议: