所以有成员,而且每个人都按月提交费用,所以我为 他们的费用记录使结构更平坦。
在“费用”下,顶级键是记录所属的成员的键,这样我就可以 查询特定成员的记录,然后在其中有费用记录,这些记录具有自己的密钥, 所以我怎么只查询费用记录。
因为它想获取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并将它们放置在回收者视图中。
还是建议您更改结构
感谢进阶
答案 0 :(得分:1)
FirebaseUI中的适配器用于显示实时数据库中的单个数据平面列表。因此,在您的数据模型中,他们可以显示用户列表(/fees
之下的节点),也可以显示一个特定用户的费用(一个/fees/$pushid
之下的节点)的费用。
FirebaseUI适配器无法显示树中的所有节点,或者至少在没有重大修改的情况下不能显示。
我建议:
ArrayList
,然后再放入create a custom adapter to display the data from that list。有关此方面的一些启发,请参见Android - Display data in ListView from Firebase database,Cast arraylist in recyclerview firebase