我使用FirebaseIndexRecyclerAdapter
来获取keyRef和dataRef,并且非常有助于让所有dataRef的子项在keyRef中作为子项存在。
数据正在正确显示但如果我覆盖onDataChanged
隐藏进度条和/或显示空状态取决于itemsCount(我已用{做过的事情} {1}}并按预期工作)但FirebaseRecyclerAdapter
始终返回0(!)
getItemCount
我已对其进行调查,原因是private class MYAdapter extends FirebaseIndexRecyclerAdapter<Item, ItemHolder> {
.
.
@Override
protected void onDataChanged() {
super.onDataChanged();
// getItemCount() == 0 here always
}
.
.
}
正在使用FirebaseIndexRecyclerAdapter
覆盖FirebaseIndexArray
并返回getItemCount
但数据尚未加载 - mDataSnapshots.size()
被调用是因为keyRef已加载 - 实际上我可以在调试中看到密钥被加载(具有正确的计数)但不幸的是它们是私有的,因此我不能使用它们来获取计数。
我知道我可以覆盖onDataChanged
,然后拨打onChildChanged
并获取正确的计数(我已经完成),但我仍然无法知道是否没有项目我需要显示空状态。
使用getItemCount
我有什么遗失的东西吗?
注意 - 我知道我可以在数据旁边管理自己的计数(子),只需在设置适配器之前加载它,但我将此作为最后的手段保存。
谢谢!
答案 0 :(得分:3)
所以,按照@Frank van Puffelen的建议,在FirebaseUI-Android github repo中打开issue之后,我得到了@SUPERCILEX的答案,说onDataChanged
确实在{{1}中被打破了并将在v2.0中修复,即将推出。