我正在尝试将Firebase与我的Android应用一起使用,而我正在尝试将addChildEventListener调用到数据库引用。但是,此引用最初可能为空(已创建,但其中没有子项),Firebase似乎没有检查,我得到无效索引0,大小为0错误,我的应用程序崩溃。
query.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
这是一个错误还是我做错了什么?
编辑:这是我的错误!在某些情况下,我用来引用节点的字符串变量只是null:P答案 0 :(得分:0)
如果找不到关于特定节点的任何数据或节点不存在,FireBase会将dataSnapshot返回为null。所以这只是一种正常行为。 PS:在
的情况下,上述情况属实 addValueEventListener and addListenerForSingleValueEvent
但是在addChildEvent监听器的情况下,即使是onChild添加回调,我也不应该这样做。 请粘贴更多代码