这是我的申报代码:

database = FirebaseDatabase.getInstance();
myRef = database.getReference("lifts");

为什么我不能添加ValueEventListener?我试了一下firebase指南的样本。代码如下:
myRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {

    }

    @Override
    public void onCancelled(FirebaseError firebaseError) {

    }
});

我不知道为什么会这样?
myRef.addValueEventListener(new com.google.firebase.database.ValueEventListener() {
    @Override
    public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
        for (com.google.firebase.database.DataSnapshot item: dataSnapshot.getChildren()) {
            ...
        }
        ...
    }
});

最佳答案

错误是,您必须使用com.google.firebase.database.ValueEventListener。但我认为您在文件顶部的导入中有一个com.firebase.client.ValueEventListener的导入。
因此,编译器尝试使用com.firebase.client.ValueEventListener作为默认值,但显然失败了。
要解决此问题,请查看导入并删除com.firebase.client.ValueEventListener的条目。然后您可以添加com.google.firebase.database.ValueEventListener
如果必须同时使用这两种方法,则此方法不起作用。那么,除了使用两个或至少一个的全名(例如com.google.firebase.database.ValueEventListener而不仅仅是ValueEventListener)之外,没有其他解决方案了。

10-08 14:33