wait until firebase retrieves data

后端 未结 9 1129
不思量自难忘°
不思量自难忘° 2020-11-29 08:33

I want to build a method that returns a child value in FireBase. I tried to do something like this:

public String getMessage(){

           


        
9条回答
  •  再見小時候
    2020-11-29 09:12

    Make an interface

     public interface OnGetDataListener {
        //this is for callbacks
        void onSuccess(DataSnapshot dataSnapshot);
        void onStart();
        void onFailure();
    }
    

    Declare the following function readData()

    public void readData(Firebase ref, final OnGetDataListener listener) {
        listener.onStart();
        ref.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                listener.onSuccess(dataSnapshot);
            }
    
            @Override
            public void onCancelled(FirebaseError firebaseError) {
                listener.onFailure();
            }
        });
    
    }
    

    Call the readData() function as follows

    readData(root.child("MessagesOnLaunch").child("Message"), new OnGetDataListener() {
                    @Override
                    public void onSuccess(DataSnapshot dataSnapshot) {
    
                   //got data from database....now you can use the retrieved data
    
    
                    }
                    @Override
                    public void onStart() {
                        //when starting
                        Log.d("ONSTART", "Started");
                    }
    
                    @Override
                    public void onFailure() {
                        Log.d("onFailure", "Failed");
                    }
                });
    

    readData() can be called inside your getMessage() method or even inside onCreate()

提交回复
热议问题