我使用的是FirebaseIndexRecyclerAdapter
,它得到一个KEYRF和DATAREF,对于获得所有的DATAARF的孩子非常有用,这些孩子的密钥在KEYRF中作为子代存在。
数据显示正确,但如果我重写onDataChanged
以隐藏进度条和/或显示空状态,则取决于itemscant(我已经使用FirebaseRecyclerAdapter
完成了某些操作,并按预期工作),但getItemCount
始终返回0(!)
private class MYAdapter extends FirebaseIndexRecyclerAdapter<Item, ItemHolder> {
.
.
@Override
protected void onDataChanged() {
super.onDataChanged();
// getItemCount() == 0 here always
}
.
.
}
我已经调查过了,原因是
FirebaseIndexRecyclerAdapter
正在使用FirebaseIndexArray
覆盖getItemCount
并返回mDataSnapshots.size()
但数据尚未加载-调用onDataChanged
是因为keyref已加载-实际上我可以在debug中看到键已加载(具有正确的计数),但不幸的是它们是私有的,所以我无法使用它们来获取计数。我知道我可以覆盖
onChildChanged
,然后调用getItemCount
,得到正确的计数(我已经做了),但仍然不知道是否没有项目,我需要显示空状态。使用
com.firebaseui:firebase-ui:1.2.0
我有什么遗漏吗?
注意-我知道我可以在数据旁边管理自己的计数(子)并在设置适配器之前加载它,但我将此保存为最后一种方法。
谢谢!
最佳答案
因此,按照@frank van puffelen的建议,在firebaseui android github repo中打开一个issue后,我从@supercilex得到了一个答案,说onDataChanged
确实在FirebaseIndexRecyclerAdapter
中被破坏,将在即将到来的v2.0中修复。