Method onCancelled is never used in Firebase

好久不见. 提交于 2020-01-14 06:06:35

问题


I'm trying to send a query on database to display the associated node number if it matches with the string 'token' inputed by the user. However, I'm getting a 'Method does not override method from its superclass' and 'Method onCancelled is never used in method' just for the onCancelled function. Where am I going wrong?

        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");
                }

            });

回答1:


OnCanceled uses a FirebaseError and not a DatabaseError so it should be like this :

 @Override
 public void onCancelled(FirebaseError databaseError) {

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

Parameters types are important when overriding a method.



来源:https://stackoverflow.com/questions/43789400/method-oncancelled-is-never-used-in-firebase

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!