Firebase Android - 查询addChildEventListener从数组索引超出范围崩溃?

时间:2016-05-21 15:29:50

标签: android firebase

我正在尝试将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

1 个答案:

答案 0 :(得分:0)

如果找不到关于特定节点的任何数据或节点不存在,FireBase会将dataSnapshot返回为null。所以这只是一种正常行为。 PS:在

的情况下,上述情况属实
 addValueEventListener and addListenerForSingleValueEvent

但是在addChildEvent监听器的情况下,即使是onChild添加回调,我也不应该这样做。 请粘贴更多代码