2017-05-04 2 views
0

Ich versuche, eine Abfrage für die Datenbank zu senden, um die zugehörige Knotennummer anzuzeigen, wenn sie mit der Zeichenfolge "Token" übereinstimmt, die vom Benutzer eingegeben wurde. Allerdings bekomme ich eine "Methode überschreibt keine Methode aus ihrer Oberklasse" und "Methode onCancelled wird nie in der Methode verwendet" nur für die onCancelled-Funktion. Wo gehe ich falsch?Methode onCancelled wird nie in Firebase verwendet

 buttonSave.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //Creating firebase object 
      Firebase ref = new Firebase(Config.FIREBASE_URL); 

      //Getting values to store 
      String token = editToken.getText().toString().trim(); 

      Query query = ref.orderByChild("token").equalTo(token, "token"); 
      query.addChildEventListener(new ChildEventListener() { 



       @Override 
       public void onChildAdded(DataSnapshot snapshot, String previousChildKey) { 
        Person user = snapshot.getValue(Person.class); 

        String demo=user.getNodes(); 

        System.out.println("Nodes: " + demo); 
       } 

       @Override 
       public void onChildRemoved(DataSnapshot dataSnapshot) { 
        Person friend = dataSnapshot.getValue(Person.class); 
        Toast.makeText(enter_page.this 
          , "Friend removed: " + dataSnapshot.getKey() 
            + " token: " + friend.getToken() 
            + " name: " + friend.getNodes() 
          , Toast.LENGTH_SHORT).show(); 
       } 

       @Override 
       public void onChildChanged(DataSnapshot dataSnapshot, String s) { 
        Person friend = dataSnapshot.getValue(Person.class); 
        Toast.makeText(enter_page.this 
          , "Friend changed: " + dataSnapshot.getKey() 
            + " token: " + friend.getToken() 
            + " nodes: " + friend.getNodes() 
          , Toast.LENGTH_SHORT).show(); 
       } 
       @Override 
       public void onChildMoved(DataSnapshot dataSnapshot, String s) { 

       } 

       @Override 
       public void onCancelled(DatabaseError databaseError) { 

        System.out.println("DATABASE ERROR"); 
       } 

      }); 

Antwort

1

OnCanceled verwendet eine FirebaseError und kein DatabaseError so sollte es so sein:

@Override 
public void onCancelled(FirebaseError databaseError) { 

    System.out.println("DATABASE ERROR"); 
} 

Parameter Typen sind wichtig, wenn eine Methode überschrieben.

+0

Oh ja !! Vielen Dank!! – RubberDuck

Verwandte Themen