Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
Java Firebase中的childeventlistener出现问题_Java_Firebase_Firebase Realtime Database - Fatal编程技术网

Java Firebase中的childeventlistener出现问题

Java Firebase中的childeventlistener出现问题,java,firebase,firebase-realtime-database,Java,Firebase,Firebase Realtime Database,我对下面的代码有问题 私有FirebaseDatabase mFirebaseDatabase; 私有数据库引用mDatabaseReference; private ChildEventListener mChildListener; @凌驾 受保护的void onCreateBundle savedInstanceState{ super.onCreatesavedInstanceState; setContentViewR.layout.activity_列表; mFirebaseData

我对下面的代码有问题

私有FirebaseDatabase mFirebaseDatabase; 私有数据库引用mDatabaseReference; private ChildEventListener mChildListener; @凌驾 受保护的void onCreateBundle savedInstanceState{ super.onCreatesavedInstanceState; setContentViewR.layout.activity_列表; mFirebaseDatabase=FirebaseDatabase.getInstance; mDatabaseReference=mFirebaseDatabase.getReference.childMyItem; mChildListener=新的ChildEventListener; mDatabaseReference.addChildEventListenermChildListener; } 错误为childeventlistener是抽象的,无法为以下行实例化 mChildListner=新的ChildEventListener


知道我做错了什么吗

ChildEventListener是一个接口,您不能在java中创建该接口的实例,而是需要创建一个实现该接口的类

与此相反:

mChildListener = new ChildEventListener(); 
mDatabaseReference.addChildEventListener(mChildListener);
您可以这样做:

 mChildListener = new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String previousChildName) {
        Log.d(TAG, "onChildAdded:" + dataSnapshot.getKey());


    }

    @Override
    public void onChildChanged(DataSnapshot dataSnapshot, String previousChildName) {
        Log.d(TAG, "onChildChanged:" + dataSnapshot.getKey());


    }

    @Override
    public void onChildRemoved(DataSnapshot dataSnapshot) {
        Log.d(TAG, "onChildRemoved:" + dataSnapshot.getKey());


    }

    @Override
    public void onChildMoved(DataSnapshot dataSnapshot, String previousChildName) {
        Log.d(TAG, "onChildMoved:" + dataSnapshot.getKey());


    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        Log.w(TAG, "postComments:onCancelled", databaseError.toException());

    }
};


mDatabaseReference.addChildEventListener(mChildListener);

错误很明显,你不能创建抽象类的对象,你知道抽象类是什么吗?对不起,我是一个编程新手,仍然没有借口,但我在这里发布之前读过,仍然对错误感到困惑。我发现抽象类是一种声明的方法,可能需要子类。关于抽象类的视频不介意他的口音,这是一个很好的解释,下面是关于抽象类的许多答案,鼓励在开始FirebaseThank之前先了解java基础知识。虽然ChildEventListner不是一个抽象类,它是一个接口,但是你会得到一个想法,非常感谢你把我引向正确的方向。如果这有助于确保接受,这样其他人就知道应该看什么答案。