这是我的声明代码:
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()) {
...
}
...
}
});
答案 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
)之外,没有其他解决方案可用于两者或至少一个。