Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 调用了FirebaseIndexRecyclerAdapter onDataChanged,但getItemCount()始终返回0_Android_Firebase Realtime Database_Android Recyclerview_Firebaseui - Fatal编程技术网

Android 调用了FirebaseIndexRecyclerAdapter onDataChanged,但getItemCount()始终返回0

Android 调用了FirebaseIndexRecyclerAdapter onDataChanged,但getItemCount()始终返回0,android,firebase-realtime-database,android-recyclerview,firebaseui,Android,Firebase Realtime Database,Android Recyclerview,Firebaseui,我正在使用它获取一个keyRef和dataRef,这对于获取所有dataRef的子项非常有用,它们的键作为keyRef中的子项存在 数据显示正确,但如果我覆盖onDataChanged以隐藏进度条和/或显示空状态,则取决于itemsCount(我已经使用FirebaseRecyclerAdapter完成了这项操作,并按预期工作),但getItemCount始终返回0(!) 私有类MYAdapter扩展FirebaseIndexRecyclerAdapter{ . . @凌驾 受保护的无效onDa

我正在使用它获取一个keyRef和dataRef,这对于获取所有dataRef的子项非常有用,它们的键作为keyRef中的子项存在

数据显示正确,但如果我覆盖
onDataChanged
以隐藏进度条和/或显示空状态,则取决于itemsCount(我已经使用
FirebaseRecyclerAdapter
完成了这项操作,并按预期工作),但
getItemCount
始终返回0(!)

私有类MYAdapter扩展FirebaseIndexRecyclerAdapter{
.
.
@凌驾
受保护的无效onDataChanged(){
super.onDataChanged();
//getItemCount()=此处始终为0
}
.
.
}
我已经调查过了,原因是
FirebaseIndexRecyclerAdapter
正在使用
FirebaseIndexArray
覆盖
getItemCount
并返回
mDataSnapshots.size()
但数据尚未加载-调用了
onDataChanged
,因为加载了keyRef-事实上,我可以在调试中看到密钥已加载(具有正确的计数),但不幸的是,它们是私有的,因此我无法使用它们来获取计数

我知道我可以重写
onChildChanged
,然后调用
getItemCount
并获得正确的计数(我已经这样做了),但我仍然不知道是否没有项目,我需要显示空状态

使用
com.firebaseui:firebaseui:1.2.0

有什么我遗漏的吗

注意-我知道我可以在数据旁边管理我自己的计数(子项),只需在设置适配器之前加载它,但我将保存它作为最后手段


谢谢

因此,正如@Frank van Puffelen所建议的那样,在FirebaseUI Android github回购协议中打开a之后,我从@SUPERCILEX得到的答案是,
onDataChanged
确实在
FirebaseIndexRecyclerAdapter
中被破坏,并将在即将到来的v2.0中修复。

对我们大多数人来说,读单词比读代码更容易。请把这封信寄出去。但是如果你认为你发现了一个bug,最好报告一个bug。@FrankvanPuffelen我已经更新了这个问题。谢谢
private class MYAdapter extends FirebaseIndexRecyclerAdapter<Item, ItemHolder> {
    .
    .

    @Override
    protected void onDataChanged() {
        super.onDataChanged();
        // getItemCount() == 0 here always
    }

    .
    .
}