Firebase错误:无法添加ValueEventListener

时间:2016-07-19 12:24:38

标签: android firebase firebase-realtime-database

这是我的声明代码:

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()) {
            ...
        }
        ...
    }
});    

1 个答案:

答案 0 :(得分:6)

错误是,您必须使用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)之外,没有其他解决方案可用于两者或至少一个。