我使用的是Firebase,这行代码会导致错误。
@Override
public void onCancelled(FirebaseError firebaseError) {
}
错误如下,
如何解决这些错误?
我的代码 -
public class FirebaseClient {
Context c;
String DB_URL;
ListView listView;
Firebase firebase;
ArrayList<Dog> dogies= new ArrayList<>();
CustomAdapter customAdapter;
public FirebaseClient(Context c, String DB_URL, ListView listView)
{
this.c= c;
this.DB_URL= DB_URL;
this.listView= listView;
Firebase.setAndroidContext(c);
firebase=new Firebase(DB_URL);
}
public void refreshdata()
{
firebase.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
getupdates(dataSnapshot);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
getupdates(dataSnapshot);
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
}
public void getupdates(DataSnapshot dataSnapshot){
dogies.clear();
for(DataSnapshot ds :dataSnapshot.getChildren()){
Dog d= new Dog();
d.setTimestamp(ds.getValue(Dog.class).getTimestamp());
d.setInstituteNotice(ds.getValue(Dog.class).getInstituteNotice());
dogies.add(d);
}
if(dogies.size()>0)
{
customAdapter=new CustomAdapter(c, dogies);
listView.setAdapter((ListAdapter) customAdapter);
} else
{
Toast.makeText(c, "No data", Toast.LENGTH_SHORT).show();
}
}
}
答案 0 :(得分:1)
您正在使用legacy Firebase SDK(已弃用超过一年)并在新SDK中混合使用类。您应该考虑迁移到新的SDK。 Upgrade Guide概述了这些步骤。
在您发布的代码中,DatabaseError来自新SDK,而不是旧版SDK,因此此覆盖无效且应删除:
public P()
{
C.Log = myLog;
InitializeComponent();
}
答案 1 :(得分:0)
为了解决这个问题,您需要从代码中删除以下方法:
@Override
public void onCancelled(FirebaseError firebaseError) {}
您已从其超类中覆盖public void onCancelled(DatabaseError databaseError)
。我建议您删除的代码用于早期版本的SDK。你需要使用新的。